Files
dotfiles/modules/nixos/services/arion/servers/terraria/default.nix

49 lines
1.2 KiB
Nix

{
options,
config,
lib,
...
}:
with lib;
with lib.frajul; let
cfg = config.services.arion.terraria.vanilla;
in {
options.services.arion.terraria.vanilla = with types; {
enable = mkBoolOpt false "";
};
config = mkIf cfg.enable {
virtualisation.arion.enable = true;
virtualisation.arion.projects.terraria-vanilla.settings = {
project.name = "vanilla";
services.terraria.service = {
image = "ryshe/terraria:latest";
environment = {
WORLD_FILENAME = "world.wld";
CONFIGPATH = "config.json";
};
ports = [
"7777:7777"
];
volumes = [
"/home/${config.user.name}/.local/share/terraria/vanilla/worlds:/root/.local/share/Terraria/Worlds"
];
# For the first run you will need to generate a new world with a size where: 1 = Small, 2=Medium, 3=Large
command = [
"-autocreate"
"2"
];
};
services.ngrok.service = {
image = "ngrok/ngrok";
env_file = ["${config.sops.secrets."ngrok/terraria".path}"];
command = ["tcp" "terraria:7777"];
};
};
home.persist.directories = [
".local/share/terraria/vanilla/worlds"
];
};
}