mirror of
https://github.com/kmein/niveum
synced 2026-03-21 20:31:07 +01:00
mopidy, mail, telegram
This commit is contained in:
@@ -9,4 +9,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = [ pkgs.blueman ];
|
environment.systemPackages = [ pkgs.blueman ];
|
||||||
|
|
||||||
|
home-manager.users.me = {
|
||||||
|
services.blueman-applet.enable = true;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
"hdokiejnpimakedhajhdlcegeplioahd" # LastPass
|
"hdokiejnpimakedhajhdlcegeplioahd" # LastPass
|
||||||
"jldhpllghnbhlbpcmnajkpdmadaolakh" # Todoist
|
"jldhpllghnbhlbpcmnajkpdmadaolakh" # Todoist
|
||||||
"dbepggeogbaibhgnhhndojpepiihcmeb" # Vimium
|
"dbepggeogbaibhgnhhndojpepiihcmeb" # Vimium
|
||||||
|
"fpnmgdkabkmnadcjpehmlllkndpkmiak" # Wayback Machine
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -18,6 +18,8 @@
|
|||||||
<configs/vscode.nix>
|
<configs/vscode.nix>
|
||||||
<configs/htop.nix>
|
<configs/htop.nix>
|
||||||
<configs/dunst.nix>
|
<configs/dunst.nix>
|
||||||
|
# <configs/mopidy.nix>
|
||||||
|
<configs/mail.nix>
|
||||||
<configs/python.nix>
|
<configs/python.nix>
|
||||||
<configs/haskell.nix>
|
<configs/haskell.nix>
|
||||||
<configs/hu-berlin.nix>
|
<configs/hu-berlin.nix>
|
||||||
@@ -77,7 +79,6 @@
|
|||||||
nix-git = pkgs.callPackage <packages/nix-git.nix> {};
|
nix-git = pkgs.callPackage <packages/nix-git.nix> {};
|
||||||
sncli = pkgs.python3Packages.callPackage <packages/sncli.nix> {};
|
sncli = pkgs.python3Packages.callPackage <packages/sncli.nix> {};
|
||||||
spotify-cli-linux = pkgs.python3Packages.callPackage <packages/spotify-cli-linux.nix> {};
|
spotify-cli-linux = pkgs.python3Packages.callPackage <packages/spotify-cli-linux.nix> {};
|
||||||
todoist = pkgs.unstable.callPackage <packages/todoist.nix> {};
|
|
||||||
wttr = pkgs.callPackage <packages/wttr.nix> {};
|
wttr = pkgs.callPackage <packages/wttr.nix> {};
|
||||||
n = pkgs.callPackage <packages/n.nix> {};
|
n = pkgs.callPackage <packages/n.nix> {};
|
||||||
|
|
||||||
@@ -317,6 +318,7 @@
|
|||||||
qrencode
|
qrencode
|
||||||
tmuxp
|
tmuxp
|
||||||
unstable.zola
|
unstable.zola
|
||||||
|
unstable.hugo
|
||||||
wordnet
|
wordnet
|
||||||
xsv
|
xsv
|
||||||
wttr
|
wttr
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
virtualisation.docker.enable = true;
|
virtualisation.docker.enable = true;
|
||||||
users.users.me.extraGroups = [ "docker" ];
|
users.users.me.extraGroups = [ "docker" ];
|
||||||
|
environment.systemPackages = [ pkgs.docker pkgs.docker_compose ];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,11 +25,11 @@
|
|||||||
stack2nix
|
stack2nix
|
||||||
cabal-install
|
cabal-install
|
||||||
hlint
|
hlint
|
||||||
|
haskellPackages.brittany
|
||||||
(haskellPackages.ghcWithHoogle (import <dot/haskells.nix>))
|
(haskellPackages.ghcWithHoogle (import <dot/haskells.nix>))
|
||||||
] ++ map haskell.lib.justStaticExecutables [
|
] ++ map haskell.lib.justStaticExecutables [
|
||||||
haskellPackages.ghcid
|
haskellPackages.ghcid
|
||||||
haskellPackages.hakyll
|
haskellPackages.hakyll
|
||||||
haskellPackages.brittany
|
|
||||||
haskellPackages.hfmt
|
haskellPackages.hfmt
|
||||||
haskellPackages.hasktags
|
haskellPackages.hasktags
|
||||||
haskellPackages.hindent
|
haskellPackages.hindent
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
server = {
|
server = {
|
||||||
enable = true;
|
enable = true;
|
||||||
user = config.users.users.me;
|
user = config.users.users.me;
|
||||||
capabilities = [ "view" ];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,11 @@ in with config.niveum; {
|
|||||||
windowManager.i3.enable = true;
|
windowManager.i3.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
sound.mediaKeys = {
|
||||||
|
enable = true;
|
||||||
|
volumeStep = "5%";
|
||||||
|
};
|
||||||
|
|
||||||
home-manager.users.me.xsession.windowManager.i3 = {
|
home-manager.users.me.xsession.windowManager.i3 = {
|
||||||
enable = true;
|
enable = true;
|
||||||
config = rec {
|
config = rec {
|
||||||
@@ -157,9 +162,6 @@ in with config.niveum; {
|
|||||||
"${modifier}+w" = "layout tabbed";
|
"${modifier}+w" = "layout tabbed";
|
||||||
"${modifier}+x" = "exec --no-startup-id ${new-workspace}";
|
"${modifier}+x" = "exec --no-startup-id ${new-workspace}";
|
||||||
"${modifier}+y" = "exec ${applications.browser}";
|
"${modifier}+y" = "exec ${applications.browser}";
|
||||||
"XF86AudioLowerVolume" = "exec --no-startup-id ${pkgs.pamixer}/bin/pamixer -d 5";
|
|
||||||
"XF86AudioMute" = "exec --no-startup-id ${pkgs.pamixer}/bin/pamixer -t";
|
|
||||||
"XF86AudioRaiseVolume" = "exec --no-startup-id ${pkgs.pamixer}/bin/pamixer -i 5";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
39
configs/mail.nix
Normal file
39
configs/mail.nix
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
{
|
||||||
|
environment.systemPackages = [
|
||||||
|
pkgs.notmuch
|
||||||
|
pkgs.offlineimap
|
||||||
|
pkgs.msmtp
|
||||||
|
pkgs.neomutt
|
||||||
|
];
|
||||||
|
|
||||||
|
home-manager.users.me = {
|
||||||
|
accounts.email.maildirBasePath = "${config.users.users.me.home}/mail";
|
||||||
|
accounts.email.accounts.hu-berlin = {
|
||||||
|
address = "meinhark@hu-berlin.de";
|
||||||
|
userName = "meinhark";
|
||||||
|
realName = config.niveum.user.fullName;
|
||||||
|
imap = {
|
||||||
|
host = "mailbox.cms.hu-berlin.de";
|
||||||
|
port = 993;
|
||||||
|
tls.enable = true;
|
||||||
|
};
|
||||||
|
smtp = {
|
||||||
|
host = "mailhost.cms.hu-berlin.de";
|
||||||
|
port = 25;
|
||||||
|
tls.enable = true;
|
||||||
|
};
|
||||||
|
msmtp.enable = true;
|
||||||
|
notmuch.enable = true;
|
||||||
|
offlineimap = {
|
||||||
|
enable = true;
|
||||||
|
postSyncHookCommand = "notmuch new";
|
||||||
|
};
|
||||||
|
primary = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.offlineimap = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
28
configs/mopidy.nix
Normal file
28
configs/mopidy.nix
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
let secrets = import <dot/secrets.nix>;
|
||||||
|
in {
|
||||||
|
services.mopidy = {
|
||||||
|
enable = true;
|
||||||
|
extensionPackages = [
|
||||||
|
pkgs.mopidy-spotify
|
||||||
|
pkgs.mopidy-iris
|
||||||
|
pkgs.mopidy-gmusic
|
||||||
|
pkgs.mopidy-moped
|
||||||
|
pkgs.mopidy-soundcloud
|
||||||
|
pkgs.mopidy-youtube
|
||||||
|
];
|
||||||
|
configuration = ''
|
||||||
|
[mpd]
|
||||||
|
hostname = ::
|
||||||
|
|
||||||
|
[spotify]
|
||||||
|
username = ${secrets.spotify.username}
|
||||||
|
password = ${secrets.spotify.password}
|
||||||
|
client_id = ${secrets.spotify.clientId}
|
||||||
|
client_secret = ${secrets.spotify.clientSecret}
|
||||||
|
|
||||||
|
[soundcloud]
|
||||||
|
auth_token = ${secrets.soundcloud.authToken}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -6,6 +6,8 @@
|
|||||||
py.black
|
py.black
|
||||||
py.python-language-server
|
py.python-language-server
|
||||||
py.pyls-mypy
|
py.pyls-mypy
|
||||||
|
py.pyls-black
|
||||||
|
py.pyls-isort
|
||||||
py.flake8
|
py.flake8
|
||||||
])
|
])
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
let secrets = import <dot/secrets.nix>;
|
let
|
||||||
|
secrets = import <dot/secrets.nix>;
|
||||||
|
todoist = pkgs.unstable.callPackage <packages/todoist.nix> {};
|
||||||
in {
|
in {
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
(pkgs.unstable.writers.writeDashBin "todoist" ''
|
(pkgs.unstable.writers.writeDashBin "todoist" ''
|
||||||
${pkgs.todoist}/bin/todoist --color $@
|
${todoist}/bin/todoist --color $@
|
||||||
'')
|
'')
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
47
deploy.nix
47
deploy.nix
@@ -10,11 +10,24 @@ let
|
|||||||
pkgs = import "${krops}/pkgs" {};
|
pkgs = import "${krops}/pkgs" {};
|
||||||
importJson = (import <nixpkgs> {}).lib.importJSON;
|
importJson = (import <nixpkgs> {}).lib.importJSON;
|
||||||
|
|
||||||
source = {path, other ? {}}: lib.evalSource [({
|
niveum = path: {
|
||||||
nixpkgs.git = {
|
nixpkgs.git = {
|
||||||
url = https://github.com/NixOS/nixpkgs-channels;
|
url = https://github.com/NixOS/nixpkgs-channels;
|
||||||
ref = (importJson ./nixpkgs.json).rev;
|
ref = (importJson ./nixpkgs.json).rev;
|
||||||
};
|
};
|
||||||
|
system.file = toString path;
|
||||||
|
lib.file = toString ./lib;
|
||||||
|
packages.file = toString ./packages;
|
||||||
|
configs.file = toString ./configs;
|
||||||
|
dot.file = toString ./dot;
|
||||||
|
modules.file = toString ./modules;
|
||||||
|
|
||||||
|
nixos-config.symlink = "system/configuration.nix";
|
||||||
|
};
|
||||||
|
|
||||||
|
minimal = path: other: lib.evalSource [(niveum path // other)];
|
||||||
|
|
||||||
|
regular = path: minimal path (niveum path // {
|
||||||
nixos-unstable.git = {
|
nixos-unstable.git = {
|
||||||
url = https://github.com/NixOS/nixpkgs-channels;
|
url = https://github.com/NixOS/nixpkgs-channels;
|
||||||
ref = "nixos-unstable";
|
ref = "nixos-unstable";
|
||||||
@@ -27,41 +40,23 @@ let
|
|||||||
url = https://cgit.krebsco.de/stockholm;
|
url = https://cgit.krebsco.de/stockholm;
|
||||||
ref = "7e1b197dab13d024ba491c96dc959306324943c0";
|
ref = "7e1b197dab13d024ba491c96dc959306324943c0";
|
||||||
};
|
};
|
||||||
system.file = toString path;
|
});
|
||||||
lib.file = toString ./lib;
|
|
||||||
packages.file = toString ./packages;
|
|
||||||
systems.file = toString ./systems;
|
|
||||||
configs.file = toString ./configs;
|
|
||||||
dot.file = toString ./dot;
|
|
||||||
modules.file = toString ./modules;
|
|
||||||
|
|
||||||
nixos-config.symlink = "system/configuration.nix";
|
|
||||||
} // other)];
|
|
||||||
|
|
||||||
systems.scardanelli = pkgs.krops.writeDeploy "deploy-scardanelli" {
|
systems.scardanelli = pkgs.krops.writeDeploy "deploy-scardanelli" {
|
||||||
source = source {
|
source = regular ./systems/scardanelli;
|
||||||
path = ./systems/scardanelli;
|
|
||||||
other.art.file = ./art;
|
|
||||||
};
|
|
||||||
target = scardanelli-ssh;
|
target = scardanelli-ssh;
|
||||||
};
|
};
|
||||||
|
|
||||||
systems.homeros = pkgs.krops.writeDeploy "deploy-homeros" {
|
systems.homeros = pkgs.krops.writeDeploy "deploy-homeros" {
|
||||||
source = source {
|
source = regular ./systems/homeros;
|
||||||
path = ./systems/homeros;
|
|
||||||
other.art.file = ./art;
|
|
||||||
};
|
|
||||||
target = homeros-ssh;
|
target = homeros-ssh;
|
||||||
};
|
};
|
||||||
|
|
||||||
systems.catullus = pkgs.krops.writeDeploy "deploy-catullus" {
|
systems.catullus = pkgs.krops.writeDeploy "deploy-catullus" {
|
||||||
source = source {
|
source = minimal ./systems/catullus {
|
||||||
path = ./systems/catullus;
|
secrets.pass = {
|
||||||
other = {
|
dir = toString ~/.password-store;
|
||||||
secrets.pass = {
|
name = "catullus";
|
||||||
dir = toString ~/.password-store;
|
|
||||||
name = "catullus";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
target = catullus-ssh;
|
target = catullus-ssh;
|
||||||
|
|||||||
41
modules/telegram-bot.nix
Normal file
41
modules/telegram-bot.nix
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
{ lib, config, pkgs, ... }:
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.niveum.telegramBots;
|
||||||
|
|
||||||
|
botService = name: bot: nameValuePair "telegram-bot-${name}" {
|
||||||
|
enable = bot.enable;
|
||||||
|
startAt = bot.time;
|
||||||
|
serviceConfig.Type = "oneshot";
|
||||||
|
wantedBy = [ "network-online.target" ];
|
||||||
|
script = ''
|
||||||
|
${pkgs.curl}/bin/curl -s -X POST "https://api.telegram.org/bot${bot.token}/sendMessage" \
|
||||||
|
-d chat_id="${bot.chatId}" \
|
||||||
|
-d text="$(${bot.command})" ${
|
||||||
|
if bot.parseMode == null then ""
|
||||||
|
else "-d parse_mode=${bot.parseMode}"
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
options.niveum.telegramBots = mkOption {
|
||||||
|
type = types.attrsOf (types.submodule {
|
||||||
|
options = {
|
||||||
|
enable = mkEnableOption "Telegram bot";
|
||||||
|
time = mkOption { type = types.str; };
|
||||||
|
token = mkOption { type = types.strMatching "[0-9A-Za-z:-]+"; };
|
||||||
|
chatId = mkOption { type = types.strMatching "[0-9]+|@[A-Za-z0-9]+"; };
|
||||||
|
command = mkOption { type = types.str; };
|
||||||
|
parseMode = mkOption {
|
||||||
|
type = types.nullOr (types.enum ["HTML" "Markdown"]);
|
||||||
|
default = null;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
});
|
||||||
|
default = {};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
systemd.services = attrsets.mapAttrs' botService cfg;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
let
|
let
|
||||||
sshKey = {
|
sshKey = {
|
||||||
homeros = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDn13Y6CznabMvKJPIrr/dj1TX4boe8F98yc3FDElJeprQo2RXlDzjg/po9/lHTHaoC5yQUjlRg/AnI4vizYkn2sqJebAeSPahmpS+l0eFnjZgsqds2cCFqSPB6Qc5YEkGRhN4aq/ABz0jdFJLBYOYGxuuXowYxyNrqrItxDR7tF7upG+kVjYiDoP/qFm8C7zv6Zy8aoehNbzf8HlIJd0ITbMr/vUftNsQ8C84QmbZljReHmchPgE8GUfVLTlCORkhndbvNX3jXo+75y7JOIZZ6193FZHM4seg/VSDWYLJtpnhttD1w6qmiLrlimqbJB9ihoXq2eDmQ+4zo6hxQ6pFH6P0xQClJ0hxVWn6hEM3rkMwoMfbq4v54gKJsYxcGdnwjAX6d9DQv/QVjmVZffKWsGGoC7uz7bdmc0akVKi+GLSPOx8sJwXqvyvFStfqLaweVcuikUqQ72JLK7pZyliA7na6KuQ1PE3LTpfSr0lbBJ73xtS2rU1nF/Oe5zwA4LX5s/QeDVmS86D8acUrSCO62pBB3Yv8go0KR4mEvfxLiUWV6gR2uTeIPXvo4ouYFZqyABAGybjUATlGCXJaeHd/y/VWkpIB8ocqNESlRMCEe4TrYjw91AEmYBL6kWIeop3dyhovm3dTB3fQvC97kbL16wuXBrOcN4lEc+56ShhmvdQ== kieran.meinhardt@gmail.com";
|
homeros = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDn13Y6CznabMvKJPIrr/dj1TX4boe8F98yc3FDElJeprQo2RXlDzjg/po9/lHTHaoC5yQUjlRg/AnI4vizYkn2sqJebAeSPahmpS+l0eFnjZgsqds2cCFqSPB6Qc5YEkGRhN4aq/ABz0jdFJLBYOYGxuuXowYxyNrqrItxDR7tF7upG+kVjYiDoP/qFm8C7zv6Zy8aoehNbzf8HlIJd0ITbMr/vUftNsQ8C84QmbZljReHmchPgE8GUfVLTlCORkhndbvNX3jXo+75y7JOIZZ6193FZHM4seg/VSDWYLJtpnhttD1w6qmiLrlimqbJB9ihoXq2eDmQ+4zo6hxQ6pFH6P0xQClJ0hxVWn6hEM3rkMwoMfbq4v54gKJsYxcGdnwjAX6d9DQv/QVjmVZffKWsGGoC7uz7bdmc0akVKi+GLSPOx8sJwXqvyvFStfqLaweVcuikUqQ72JLK7pZyliA7na6KuQ1PE3LTpfSr0lbBJ73xtS2rU1nF/Oe5zwA4LX5s/QeDVmS86D8acUrSCO62pBB3Yv8go0KR4mEvfxLiUWV6gR2uTeIPXvo4ouYFZqyABAGybjUATlGCXJaeHd/y/VWkpIB8ocqNESlRMCEe4TrYjw91AEmYBL6kWIeop3dyhovm3dTB3fQvC97kbL16wuXBrOcN4lEc+56ShhmvdQ== kieran.meinhardt@gmail.com";
|
||||||
@@ -9,8 +9,37 @@ in {
|
|||||||
<system/hardware-configuration.nix>
|
<system/hardware-configuration.nix>
|
||||||
<system/containers.nix>
|
<system/containers.nix>
|
||||||
<modules/retiolum.nix>
|
<modules/retiolum.nix>
|
||||||
|
<modules/telegram-bot.nix>
|
||||||
|
{
|
||||||
|
sound.enable = true;
|
||||||
|
|
||||||
|
sound.extraConfig = ''
|
||||||
|
defaults.ctl.card 1
|
||||||
|
defaults.pcm.card 1
|
||||||
|
'';
|
||||||
|
|
||||||
|
hardware.pulseaudio = {
|
||||||
|
enable = true;
|
||||||
|
systemWide = true;
|
||||||
|
package = pkgs.pulseaudioFull;
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.root.extraGroups = [ "audio" ];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
documentation.enable = false;
|
||||||
|
documentation.doc.enable = false;
|
||||||
|
documentation.man.enable = false;
|
||||||
|
documentation.info.enable = false;
|
||||||
|
fonts.fontconfig.enable = false;
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
nixpkgs.config.packageOverrides = pkgs: {
|
||||||
|
autorenkalender = pkgs.callPackage <packages/autorenkalender.nix> {};
|
||||||
|
literature-quote = pkgs.callPackage <packages/literature-quote.nix> {};
|
||||||
|
};
|
||||||
|
|
||||||
boot.loader.grub.enable = false;
|
boot.loader.grub.enable = false;
|
||||||
boot.loader.generic-extlinux-compatible.enable = true;
|
boot.loader.generic-extlinux-compatible.enable = true;
|
||||||
|
|
||||||
@@ -26,26 +55,11 @@ in {
|
|||||||
environment.variables.TERM = "linux";
|
environment.variables.TERM = "linux";
|
||||||
environment.variables.HTOPRC = toString <dot/htoprc>;
|
environment.variables.HTOPRC = toString <dot/htoprc>;
|
||||||
|
|
||||||
documentation.enable = false;
|
|
||||||
documentation.doc.enable = false;
|
|
||||||
documentation.man.enable = false;
|
|
||||||
documentation.info.enable = false;
|
|
||||||
fonts.fontconfig.enable = false;
|
|
||||||
|
|
||||||
programs.tmux.enable = true;
|
programs.tmux.enable = true;
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [ git vim htop ];
|
||||||
git
|
|
||||||
vim
|
|
||||||
htop
|
|
||||||
];
|
|
||||||
|
|
||||||
users.mutableUsers = false;
|
users.mutableUsers = false;
|
||||||
|
|
||||||
services.syncthing = {
|
|
||||||
enable = true;
|
|
||||||
openDefaultPorts = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
users.users.root.openssh.authorizedKeys.keys = [
|
users.users.root.openssh.authorizedKeys.keys = [
|
||||||
sshKey.homeros
|
sshKey.homeros
|
||||||
|
|||||||
@@ -4,81 +4,57 @@ let
|
|||||||
telegram-betacode = pkgs.python3Packages.callPackage <packages/telegram-betacode.nix> {};
|
telegram-betacode = pkgs.python3Packages.callPackage <packages/telegram-betacode.nix> {};
|
||||||
# telegram-horoscope = pkgs.python3Packages.callPackage <packages/telegram-horoscope.nix> {};
|
# telegram-horoscope = pkgs.python3Packages.callPackage <packages/telegram-horoscope.nix> {};
|
||||||
telegram-proverb = pkgs.python3Packages.callPackage <packages/telegram-proverb.nix> {};
|
telegram-proverb = pkgs.python3Packages.callPackage <packages/telegram-proverb.nix> {};
|
||||||
autorenkalender = pkgs.callPackage <packages/autorenkalender.nix> {};
|
|
||||||
literature-quote = pkgs.callPackage <packages/literature-quote.nix> {};
|
|
||||||
in {
|
in {
|
||||||
# containers.telegram-bots = {
|
niveum.telegramBots.quotebot = {
|
||||||
# autoStart = true;
|
enable = true;
|
||||||
# config = {
|
time = "08:00";
|
||||||
systemd.services.quotebot = {
|
token = lib.strings.removeSuffix "\n" (builtins.readFile <secrets/telegram-kmein.token>);
|
||||||
enable = true;
|
chatId = "18980945";
|
||||||
startAt = "08:00";
|
command = "${pkgs.literature-quote}/bin/literature-quote";
|
||||||
serviceConfig.Type = "oneshot";
|
parseMode = "Markdown";
|
||||||
wantedBy = [ "multi-user.target" ];
|
};
|
||||||
environment = {
|
|
||||||
TELEGRAM_AUTORENKALENDER_CHAT = "18980945";
|
|
||||||
TELEGRAM_AUTORENKALENDER_TOKEN = lib.strings.removeSuffix "\n" (builtins.readFile <secrets/telegram-kmein.token>);
|
|
||||||
};
|
|
||||||
script = ''
|
|
||||||
TELEGRAM_ENDPOINT="https://api.telegram.org/bot$TELEGRAM_AUTORENKALENDER_TOKEN"
|
|
||||||
${pkgs.curl}/bin/curl -s \
|
|
||||||
-X POST "$TELEGRAM_ENDPOINT/sendMessage" \
|
|
||||||
-d chat_id="$TELEGRAM_AUTORENKALENDER_CHAT" \
|
|
||||||
-d parse_mode=Markdown \
|
|
||||||
-d text="$(${literature-quote}/bin/literature-quote)"
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services.autorenbot = {
|
niveum.telegramBots.autorenkalender = {
|
||||||
enable = true;
|
enable = true;
|
||||||
startAt = "07:00";
|
time = "07:00";
|
||||||
serviceConfig.Type = "oneshot";
|
token = lib.strings.removeSuffix "\n" (builtins.readFile <secrets/telegram-kmein.token>);
|
||||||
wantedBy = [ "multi-user.target" ];
|
chatId = "@autorenkalender";
|
||||||
environment = {
|
command = "${pkgs.autorenkalender}/bin/autorenkalender";
|
||||||
TELEGRAM_AUTORENKALENDER_CHAT = "@autorenkalender";
|
};
|
||||||
TELEGRAM_AUTORENKALENDER_TOKEN = lib.strings.removeSuffix "\n" (builtins.readFile <secrets/telegram-kmein.token>);
|
|
||||||
};
|
systemd.services.telegram-reverse = {
|
||||||
script = ''
|
wantedBy = [ "multi-user.target" ];
|
||||||
TELEGRAM_ENDPOINT="https://api.telegram.org/bot$TELEGRAM_AUTORENKALENDER_TOKEN"
|
description = "Telegram bot for reversing things";
|
||||||
${pkgs.curl}/bin/curl -s \
|
environment.TELEGRAM_REVERSE_TOKEN = builtins.readFile <secrets/telegram-reverse.token>;
|
||||||
-X POST "$TELEGRAM_ENDPOINT/sendMessage" \
|
enable = true;
|
||||||
-d chat_id="$TELEGRAM_AUTORENKALENDER_CHAT" \
|
script = ''${telegram-reverse}/bin/telegram-reverse'';
|
||||||
-d text="$(${autorenkalender}/bin/autorenkalender)"
|
serviceConfig.Restart = "always";
|
||||||
'';
|
};
|
||||||
};
|
|
||||||
systemd.services.telegram-reverse = {
|
systemd.services.telegram-betacode = {
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
description = "Telegram bot for reversing things";
|
description = "Telegram bot for converting Ancient Greek betacode into unicode";
|
||||||
environment.TELEGRAM_REVERSE_TOKEN = builtins.readFile <secrets/telegram-reverse.token>;
|
environment.TELEGRAM_BETACODE_TOKEN = builtins.readFile <secrets/telegram-betacode.token>;
|
||||||
enable = true;
|
enable = true;
|
||||||
script = ''${telegram-reverse}/bin/telegram-reverse'';
|
script = ''${telegram-betacode}/bin/telegram-betacode'';
|
||||||
serviceConfig.Restart = "always";
|
serviceConfig.Restart = "always";
|
||||||
};
|
};
|
||||||
systemd.services.telegram-betacode = {
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
systemd.services.telegram-proverb = {
|
||||||
description = "Telegram bot for converting Ancient Greek betacode into unicode";
|
wantedBy = [ "multi-user.target" ];
|
||||||
environment.TELEGRAM_BETACODE_TOKEN = builtins.readFile <secrets/telegram-betacode.token>;
|
description = "Telegram bot for generating inspiring but useless proverbs";
|
||||||
enable = true;
|
environment.TELEGRAM_PROVERB_TOKEN = builtins.readFile <secrets/telegram-proverb.token>;
|
||||||
script = ''${telegram-betacode}/bin/telegram-betacode'';
|
enable = true;
|
||||||
serviceConfig.Restart = "always";
|
script = ''${telegram-proverb}/bin/proverb_bot.py'';
|
||||||
};
|
serviceConfig.Restart = "always";
|
||||||
systemd.services.telegram-proverb = {
|
};
|
||||||
wantedBy = [ "multi-user.target" ];
|
# systemd.services.telegram-horoscope = {
|
||||||
description = "Telegram bot for generating inspiring but useless proverbs";
|
# wantedBy = [ "multi-user.target" ];
|
||||||
environment.TELEGRAM_PROVERB_TOKEN = builtins.readFile <secrets/telegram-proverb.token>;
|
# description = "Telegram bot for generating horoscope charts";
|
||||||
enable = true;
|
# environment.TELEGRAM_HOROSCOPE_TOKEN = builtins.readFile <secrets/telegram-horoscope.token>;
|
||||||
script = ''${telegram-proverb}/bin/proverb_bot.py'';
|
# environment.GOOGLE_MAPS_API_KEY = builtins.readFile <secrets/google-maps.api-key>;
|
||||||
serviceConfig.Restart = "always";
|
# enable = true;
|
||||||
};
|
# script = ''${telegram-horoscope}/bin/telegram-horoscope'';
|
||||||
# systemd.services.telegram-horoscope = {
|
# serviceConfig.Restart = "always";
|
||||||
# wantedBy = [ "multi-user.target" ];
|
|
||||||
# description = "Telegram bot for generating horoscope charts";
|
|
||||||
# environment.TELEGRAM_HOROSCOPE_TOKEN = builtins.readFile <secrets/telegram-horoscope.token>;
|
|
||||||
# environment.GOOGLE_MAPS_API_KEY = builtins.readFile <secrets/google-maps.api-key>;
|
|
||||||
# enable = true;
|
|
||||||
# script = ''${telegram-horoscope}/bin/telegram-horoscope'';
|
|
||||||
# serviceConfig.Restart = "always";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# };
|
# };
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user