forked from betamike/betamike-infra
parent
983ec622b2
commit
d7859498c2
@ -0,0 +1,58 @@ |
|||||||
|
# adapted from https://nixos.org/manual/nixos/stable/index.html#module-services-matrix |
||||||
|
{ modulesPath, config, lib, pkgs, ... }: |
||||||
|
let |
||||||
|
secrets = builtins.fromJSON (builtins.readFile ./secrets.json); |
||||||
|
in { |
||||||
|
imports = [ |
||||||
|
"${toString modulesPath}/virtualisation/digital-ocean-image.nix" |
||||||
|
]; |
||||||
|
|
||||||
|
environment.systemPackages = [ pkgs.jq ]; |
||||||
|
services.openssh.enable = true; |
||||||
|
networking.firewall.allowedTCPPorts = [ 22 80 443 ]; |
||||||
|
|
||||||
|
users.users.root.openssh.authorizedKeys.keys = [ |
||||||
|
(builtins.readFile "/home/mike/.ssh/id_mops.pub") |
||||||
|
]; |
||||||
|
|
||||||
|
### app specific config |
||||||
|
users.users.matterbridge = { |
||||||
|
createHome = true; |
||||||
|
isNormalUser = false; |
||||||
|
isSystemUser = true; |
||||||
|
}; |
||||||
|
|
||||||
|
services.matterbridge = let |
||||||
|
config-file = pkgs.writeText "matterbridge.toml" '' |
||||||
|
[discord.cryptic] |
||||||
|
Token="${secrets.matterbridge.discord.token}" |
||||||
|
Server="${secrets.matterbridge.discord.server}" |
||||||
|
RemoteNickFormat="{NICK} [{PROTOCOL}]" |
||||||
|
AutoWebhooks=true |
||||||
|
|
||||||
|
[slack.cryptic] |
||||||
|
Token="${secrets.matterbridge.slack.token}" |
||||||
|
RemoteNickFormat="{NICK} [{PROTOCOL}]" |
||||||
|
|
||||||
|
# [[gateway]] |
||||||
|
# name="bot-test-gateway" |
||||||
|
# enable=true |
||||||
|
# [[gateway.inout]] |
||||||
|
# account="discord.cryptic" |
||||||
|
# channel="bot-test" |
||||||
|
# |
||||||
|
# [[gateway.inout]] |
||||||
|
# account="slack.cryptic" |
||||||
|
# channel="bot-test" |
||||||
|
|
||||||
|
[[samechannelgateway]] |
||||||
|
name="same-channel-gw" |
||||||
|
enable = true |
||||||
|
accounts = [ "slack.cryptic", "discord.cryptic" ] |
||||||
|
channels = [ "bot-test", "generic-gaming", "to-the-moon-and-back" ] |
||||||
|
''; |
||||||
|
in { |
||||||
|
enable = true; |
||||||
|
configPath = "${config-file}"; |
||||||
|
}; |
||||||
|
} |
@ -0,0 +1,23 @@ |
|||||||
|
resource "digitalocean_droplet" "bridge-0" { |
||||||
|
name = "bridge-0" |
||||||
|
|
||||||
|
image = data.digitalocean_image.nixos_base.id |
||||||
|
region = "nyc3" |
||||||
|
size = "s-1vcpu-1gb" |
||||||
|
|
||||||
|
ssh_keys = [data.digitalocean_ssh_key.mops.id] |
||||||
|
} |
||||||
|
|
||||||
|
module "deploy_nixos_bridge" { |
||||||
|
source = "github.com/tweag/terraform-nixos//deploy_nixos?ref=d055d2180da230e47ba9082fc53a8b7d1fadbc43" |
||||||
|
|
||||||
|
nixos_config = "../nixos_configs/bridge.nix" |
||||||
|
|
||||||
|
target_user = "root" |
||||||
|
target_host = digitalocean_droplet.bridge-0.ipv4_address |
||||||
|
|
||||||
|
triggers = { |
||||||
|
// Also re-deploy whenever the VM is re-created |
||||||
|
instance_id = digitalocean_droplet.bridge-0.id |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue