containers: rename sevices to arion-*
Signed-off-by: Myned <dev@bjork.tech>
This commit is contained in:
parent
9e368e5f80
commit
e98e4f41f3
11 changed files with 234 additions and 278 deletions
|
@ -12,18 +12,14 @@ in {
|
||||||
#?? arion-actualbudget pull
|
#?? arion-actualbudget pull
|
||||||
environment.shellAliases.arion-actualbudget = "sudo arion --prebuilt-file ${config.virtualisation.arion.projects.actualbudget.settings.out.dockerComposeYaml}";
|
environment.shellAliases.arion-actualbudget = "sudo arion --prebuilt-file ${config.virtualisation.arion.projects.actualbudget.settings.out.dockerComposeYaml}";
|
||||||
|
|
||||||
virtualisation.arion.projects.actualbudget = {
|
virtualisation.arion.projects.actualbudget.settings.services = {
|
||||||
serviceName = "actualbudget";
|
actualbudget.service = {
|
||||||
|
container_name = "actualbudget";
|
||||||
settings.services = {
|
image = "actualbudget/actual-server:24.9.0";
|
||||||
actualbudget.service = {
|
ports = ["5006:5006"];
|
||||||
container_name = "actualbudget";
|
restart = "unless-stopped";
|
||||||
image = "actualbudget/actual-server:24.9.0";
|
volumes = ["${config.custom.containers.directory}/actualbudget/data:/data"];
|
||||||
ports = ["5006:5006"];
|
# TODO: Set up trusted proxies
|
||||||
restart = "unless-stopped";
|
|
||||||
volumes = ["${config.custom.containers.directory}/actualbudget/data:/data"];
|
|
||||||
# TODO: Set up trusted proxies
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -21,21 +21,17 @@ in {
|
||||||
#?? arion-coturn pull
|
#?? arion-coturn pull
|
||||||
environment.shellAliases.arion-coturn = "sudo arion --prebuilt-file ${config.virtualisation.arion.projects.coturn.settings.out.dockerComposeYaml}";
|
environment.shellAliases.arion-coturn = "sudo arion --prebuilt-file ${config.virtualisation.arion.projects.coturn.settings.out.dockerComposeYaml}";
|
||||||
|
|
||||||
virtualisation.arion.projects.coturn = {
|
virtualisation.arion.projects.coturn.settings.services = {
|
||||||
serviceName = "coturn";
|
# https://conduwuit.puppyirl.gay/turn.html
|
||||||
|
coturn.service = {
|
||||||
|
container_name = "coturn";
|
||||||
|
image = "coturn/coturn:4.6";
|
||||||
|
network_mode = "host";
|
||||||
|
restart = "unless-stopped";
|
||||||
|
|
||||||
settings.services = {
|
volumes = [
|
||||||
# https://conduwuit.puppyirl.gay/turn.html
|
"${config.custom.containers.directory}/coturn/coturn.conf:/etc/coturn/turnserver.conf"
|
||||||
coturn.service = {
|
];
|
||||||
container_name = "coturn";
|
|
||||||
image = "coturn/coturn:4.6";
|
|
||||||
network_mode = "host";
|
|
||||||
restart = "unless-stopped";
|
|
||||||
|
|
||||||
volumes = [
|
|
||||||
"${config.custom.containers.directory}/coturn/coturn.conf:/etc/coturn/turnserver.conf"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -24,35 +24,31 @@ in {
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [22]; # SSH
|
networking.firewall.allowedTCPPorts = [22]; # SSH
|
||||||
|
|
||||||
virtualisation.arion.projects.forgejo = {
|
virtualisation.arion.projects.forgejo.settings.services = {
|
||||||
serviceName = "forgejo";
|
# https://codeberg.org/forgejo/forgejo
|
||||||
|
# https://forgejo.org/docs/latest/admin/
|
||||||
|
#?? docker exec -it forgejo bash
|
||||||
|
#?? sudo -u git forgejo admin user create --username USERNAME --random-password --email EMAIL --admin
|
||||||
|
forgejo.service = {
|
||||||
|
container_name = "forgejo";
|
||||||
|
depends_on = ["db"];
|
||||||
|
env_file = [config.age.secrets."${config.custom.profile}/forgejo/.env".path];
|
||||||
|
image = "codeberg.org/forgejo/forgejo:8";
|
||||||
|
restart = "unless-stopped";
|
||||||
|
volumes = ["${config.custom.containers.directory}/forgejo/data:/data"];
|
||||||
|
|
||||||
settings.services = {
|
ports = [
|
||||||
# https://codeberg.org/forgejo/forgejo
|
"127.0.0.1:3333:3000"
|
||||||
# https://forgejo.org/docs/latest/admin/
|
"22:2222"
|
||||||
#?? docker exec -it forgejo bash
|
];
|
||||||
#?? sudo -u git forgejo admin user create --username USERNAME --random-password --email EMAIL --admin
|
};
|
||||||
forgejo.service = {
|
|
||||||
container_name = "forgejo";
|
|
||||||
depends_on = ["db"];
|
|
||||||
env_file = [config.age.secrets."${config.custom.profile}/forgejo/.env".path];
|
|
||||||
image = "codeberg.org/forgejo/forgejo:8";
|
|
||||||
restart = "unless-stopped";
|
|
||||||
volumes = ["${config.custom.containers.directory}/forgejo/data:/data"];
|
|
||||||
|
|
||||||
ports = [
|
db.service = {
|
||||||
"127.0.0.1:3333:3000"
|
container_name = "forgejo-db";
|
||||||
"22:2222"
|
env_file = [config.age.secrets."${config.custom.profile}/forgejo/db.env".path];
|
||||||
];
|
image = "postgres:15";
|
||||||
};
|
restart = "unless-stopped";
|
||||||
|
volumes = ["${config.custom.containers.directory}/forgejo/db:/var/lib/postgresql/data"];
|
||||||
db.service = {
|
|
||||||
container_name = "forgejo-db";
|
|
||||||
env_file = [config.age.secrets."${config.custom.profile}/forgejo/db.env".path];
|
|
||||||
image = "postgres:15";
|
|
||||||
restart = "unless-stopped";
|
|
||||||
volumes = ["${config.custom.containers.directory}/forgejo/db:/var/lib/postgresql/data"];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -21,18 +21,14 @@ in {
|
||||||
#?? arion-foundryvtt pull
|
#?? arion-foundryvtt pull
|
||||||
environment.shellAliases.arion-foundryvtt = "sudo arion --prebuilt-file ${config.virtualisation.arion.projects.foundryvtt.settings.out.dockerComposeYaml}";
|
environment.shellAliases.arion-foundryvtt = "sudo arion --prebuilt-file ${config.virtualisation.arion.projects.foundryvtt.settings.out.dockerComposeYaml}";
|
||||||
|
|
||||||
virtualisation.arion.projects.foundryvtt = {
|
virtualisation.arion.projects.foundryvtt.settings.services = {
|
||||||
serviceName = "foundryvtt";
|
foundryvtt.service = {
|
||||||
|
container_name = "foundryvtt";
|
||||||
settings.services = {
|
env_file = [config.age.secrets."${config.custom.profile}/foundryvtt/.env".path];
|
||||||
foundryvtt.service = {
|
image = "felddy/foundryvtt:12";
|
||||||
container_name = "foundryvtt";
|
ports = ["127.0.0.1:30000:30000"];
|
||||||
env_file = [config.age.secrets."${config.custom.profile}/foundryvtt/.env".path];
|
restart = "unless-stopped";
|
||||||
image = "felddy/foundryvtt:12";
|
volumes = ["${config.custom.containers.directory}/foundryvtt/data:/data"];
|
||||||
ports = ["127.0.0.1:30000:30000"];
|
|
||||||
restart = "unless-stopped";
|
|
||||||
volumes = ["${config.custom.containers.directory}/foundryvtt/data:/data"];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -22,39 +22,35 @@ in {
|
||||||
#?? arion-headscale pull
|
#?? arion-headscale pull
|
||||||
environment.shellAliases.arion-headscale = "sudo arion --prebuilt-file ${config.virtualisation.arion.projects.headscale.settings.out.dockerComposeYaml}";
|
environment.shellAliases.arion-headscale = "sudo arion --prebuilt-file ${config.virtualisation.arion.projects.headscale.settings.out.dockerComposeYaml}";
|
||||||
|
|
||||||
virtualisation.arion.projects.headscale = {
|
virtualisation.arion.projects.headscale.settings.services = {
|
||||||
serviceName = "headscale";
|
# https://headscale.net/
|
||||||
|
# https://github.com/juanfont/headscale
|
||||||
|
# BUG: Does not support generic DoH/DoT
|
||||||
|
# https://github.com/juanfont/headscale/issues/1312
|
||||||
|
headscale.service = {
|
||||||
|
command = "serve";
|
||||||
|
container_name = "headscale";
|
||||||
|
env_file = [config.age.secrets."${config.custom.profile}/headscale/.env".path];
|
||||||
|
image = "headscale/headscale:v0.23.0-beta.4";
|
||||||
|
restart = "unless-stopped";
|
||||||
|
|
||||||
settings.services = {
|
ports = [
|
||||||
# https://headscale.net/
|
"9999:9999"
|
||||||
# https://github.com/juanfont/headscale
|
"9090:9090"
|
||||||
# BUG: Does not support generic DoH/DoT
|
];
|
||||||
# https://github.com/juanfont/headscale/issues/1312
|
|
||||||
headscale.service = {
|
|
||||||
command = "serve";
|
|
||||||
container_name = "headscale";
|
|
||||||
env_file = [config.age.secrets."${config.custom.profile}/headscale/.env".path];
|
|
||||||
image = "headscale/headscale:v0.23.0-beta.4";
|
|
||||||
restart = "unless-stopped";
|
|
||||||
|
|
||||||
ports = [
|
volumes = [
|
||||||
"9999:9999"
|
"${config.custom.containers.directory}/headscale/config:/etc/headscale"
|
||||||
"9090:9090"
|
"${config.custom.containers.directory}/headscale/data:/var/lib/headscale"
|
||||||
];
|
|
||||||
|
|
||||||
volumes = [
|
# Minimum config.yaml
|
||||||
"${config.custom.containers.directory}/headscale/config:/etc/headscale"
|
# https://github.com/juanfont/headscale/blob/main/config-example.yaml
|
||||||
"${config.custom.containers.directory}/headscale/data:/var/lib/headscale"
|
# https://github.com/juanfont/headscale/blob/main/integration/hsic/config.go
|
||||||
|
"${pkgs.writeText "config.yaml" ''
|
||||||
# Minimum config.yaml
|
noise:
|
||||||
# https://github.com/juanfont/headscale/blob/main/config-example.yaml
|
private_key_path: /var/lib/headscale/noise_private.key
|
||||||
# https://github.com/juanfont/headscale/blob/main/integration/hsic/config.go
|
''}:/etc/headscale/config.yaml"
|
||||||
"${pkgs.writeText "config.yaml" ''
|
];
|
||||||
noise:
|
|
||||||
private_key_path: /var/lib/headscale/noise_private.key
|
|
||||||
''}:/etc/headscale/config.yaml"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -12,17 +12,13 @@ in {
|
||||||
#?? arion-homeassistant pull
|
#?? arion-homeassistant pull
|
||||||
environment.shellAliases.arion-homeassistant = "sudo arion --prebuilt-file ${config.virtualisation.arion.projects.homeassistant.settings.out.dockerComposeYaml}";
|
environment.shellAliases.arion-homeassistant = "sudo arion --prebuilt-file ${config.virtualisation.arion.projects.homeassistant.settings.out.dockerComposeYaml}";
|
||||||
|
|
||||||
virtualisation.arion.projects.homeassistant = {
|
virtualisation.arion.projects.homeassistant.settings.services = {
|
||||||
serviceName = "homeassistant";
|
homeassistant.service = {
|
||||||
|
container_name = "homeassistant";
|
||||||
settings.services = {
|
image = "homeassistant/home-assistant:2024.9.1";
|
||||||
homeassistant.service = {
|
ports = ["8123:8123"];
|
||||||
container_name = "homeassistant";
|
restart = "unless-stopped";
|
||||||
image = "homeassistant/home-assistant:2024.9.1";
|
volumes = ["${config.custom.containers.directory}/homeassistant/config:/config"];
|
||||||
ports = ["8123:8123"];
|
|
||||||
restart = "unless-stopped";
|
|
||||||
volumes = ["${config.custom.containers.directory}/homeassistant/config:/config"];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -22,40 +22,36 @@ in {
|
||||||
#?? arion-mastodon pull
|
#?? arion-mastodon pull
|
||||||
environment.shellAliases.arion-mastodon = "sudo arion --prebuilt-file ${config.virtualisation.arion.projects.mastodon.settings.out.dockerComposeYaml}";
|
environment.shellAliases.arion-mastodon = "sudo arion --prebuilt-file ${config.virtualisation.arion.projects.mastodon.settings.out.dockerComposeYaml}";
|
||||||
|
|
||||||
virtualisation.arion.projects.mastodon = {
|
virtualisation.arion.projects.mastodon.settings.services = {
|
||||||
serviceName = "mastodon";
|
# https://github.com/linuxserver/docker-mastodon
|
||||||
|
# https://github.com/mastodon/mastodon/blob/main/docker-compose.yml
|
||||||
|
mastodon.service = {
|
||||||
|
container_name = "mastodon";
|
||||||
|
env_file = [config.age.secrets."${config.custom.profile}/mastodon/.env".path];
|
||||||
|
image = "lscr.io/linuxserver/mastodon:4.2.12";
|
||||||
|
ports = ["3000:443"];
|
||||||
|
restart = "unless-stopped";
|
||||||
|
volumes = ["${config.custom.containers.directory}/mastodon/config:/config"];
|
||||||
|
|
||||||
settings.services = {
|
depends_on = [
|
||||||
# https://github.com/linuxserver/docker-mastodon
|
"cache"
|
||||||
# https://github.com/mastodon/mastodon/blob/main/docker-compose.yml
|
"db"
|
||||||
mastodon.service = {
|
];
|
||||||
container_name = "mastodon";
|
};
|
||||||
env_file = [config.age.secrets."${config.custom.profile}/mastodon/.env".path];
|
|
||||||
image = "lscr.io/linuxserver/mastodon:4.2.12";
|
|
||||||
ports = ["3000:443"];
|
|
||||||
restart = "unless-stopped";
|
|
||||||
volumes = ["${config.custom.containers.directory}/mastodon/config:/config"];
|
|
||||||
|
|
||||||
depends_on = [
|
cache.service = {
|
||||||
"cache"
|
container_name = "mastodon-cache";
|
||||||
"db"
|
image = "redis:latest";
|
||||||
];
|
restart = "unless-stopped";
|
||||||
};
|
volumes = ["${config.custom.containers.directory}/mastodon/cache:/data"];
|
||||||
|
};
|
||||||
|
|
||||||
cache.service = {
|
db.service = {
|
||||||
container_name = "mastodon-cache";
|
container_name = "mastodon-db";
|
||||||
image = "redis:latest";
|
env_file = [config.age.secrets."${config.custom.profile}/mastodon/db.env".path];
|
||||||
restart = "unless-stopped";
|
image = "postgres:15";
|
||||||
volumes = ["${config.custom.containers.directory}/mastodon/cache:/data"];
|
restart = "unless-stopped";
|
||||||
};
|
volumes = ["${config.custom.containers.directory}/mastodon/db:/var/lib/postgresql/data"];
|
||||||
|
|
||||||
db.service = {
|
|
||||||
container_name = "mastodon-db";
|
|
||||||
env_file = [config.age.secrets."${config.custom.profile}/mastodon/db.env".path];
|
|
||||||
image = "postgres:15";
|
|
||||||
restart = "unless-stopped";
|
|
||||||
volumes = ["${config.custom.containers.directory}/mastodon/db:/var/lib/postgresql/data"];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -24,63 +24,59 @@ in {
|
||||||
environment.shellAliases.arion-netbox = "sudo arion --prebuilt-file ${config.virtualisation.arion.projects.netbox.settings.out.dockerComposeYaml}";
|
environment.shellAliases.arion-netbox = "sudo arion --prebuilt-file ${config.virtualisation.arion.projects.netbox.settings.out.dockerComposeYaml}";
|
||||||
|
|
||||||
# https://github.com/netbox-community/netbox-docker
|
# https://github.com/netbox-community/netbox-docker
|
||||||
virtualisation.arion.projects.netbox = {
|
# https://github.com/netbox-community/netbox-docker/blob/release/docker-compose.yml
|
||||||
serviceName = "netbox";
|
virtualisation.arion.projects.netbox.settings.services = let
|
||||||
|
netbox = {
|
||||||
|
container_name = "netbox";
|
||||||
|
depends_on = ["cache" "db"];
|
||||||
|
env_file = [config.age.secrets."${config.custom.profile}/netbox/.env".path];
|
||||||
|
image = "localhost/netbox"; # Built image
|
||||||
|
restart = "unless-stopped";
|
||||||
|
user = "unit:root";
|
||||||
|
volumes = ["${config.custom.containers.directory}/netbox/media:/opt/netbox/netbox/media"];
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
netbox.service =
|
||||||
|
netbox
|
||||||
|
// {
|
||||||
|
ports = ["8585:8080"];
|
||||||
|
|
||||||
# https://github.com/netbox-community/netbox-docker/blob/release/docker-compose.yml
|
# https://github.com/netbox-community/netbox-docker/wiki/Using-Netbox-Plugins
|
||||||
settings.services = let
|
#!! Context modifications require a rebuild
|
||||||
netbox = {
|
#?? arion-netbox build --no-cache
|
||||||
container_name = "netbox";
|
build.context = "${./.}";
|
||||||
depends_on = ["cache" "db"];
|
|
||||||
env_file = [config.age.secrets."${config.custom.profile}/netbox/.env".path];
|
|
||||||
image = "localhost/netbox"; # Built image
|
|
||||||
restart = "unless-stopped";
|
|
||||||
user = "unit:root";
|
|
||||||
volumes = ["${config.custom.containers.directory}/netbox/media:/opt/netbox/netbox/media"];
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
netbox.service =
|
|
||||||
netbox
|
|
||||||
// {
|
|
||||||
ports = ["8585:8080"];
|
|
||||||
|
|
||||||
# https://github.com/netbox-community/netbox-docker/wiki/Using-Netbox-Plugins
|
|
||||||
#!! Context modifications require a rebuild
|
|
||||||
#?? arion-netbox build --no-cache
|
|
||||||
build.context = "${./.}";
|
|
||||||
};
|
|
||||||
|
|
||||||
housekeeping.service =
|
|
||||||
netbox
|
|
||||||
// {
|
|
||||||
container_name = "netbox-housekeeping";
|
|
||||||
command = ["/opt/netbox/housekeeping.sh"];
|
|
||||||
depends_on = ["netbox"];
|
|
||||||
};
|
|
||||||
|
|
||||||
worker.service =
|
|
||||||
netbox
|
|
||||||
// {
|
|
||||||
container_name = "netbox-worker";
|
|
||||||
command = ["/opt/netbox/venv/bin/python" "/opt/netbox/netbox/manage.py" "rqworker"];
|
|
||||||
depends_on = ["netbox"];
|
|
||||||
};
|
|
||||||
|
|
||||||
cache.service = {
|
|
||||||
container_name = "netbox-cache";
|
|
||||||
command = ["sh" "-c" "valkey-server --requirepass $$REDIS_PASSWORD"];
|
|
||||||
env_file = [config.age.secrets."${config.custom.profile}/netbox/cache.env".path];
|
|
||||||
image = "docker.io/valkey/valkey:8.0";
|
|
||||||
restart = "unless-stopped";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
db.service = {
|
housekeeping.service =
|
||||||
container_name = "netbox-db";
|
netbox
|
||||||
env_file = [config.age.secrets."${config.custom.profile}/netbox/db.env".path];
|
// {
|
||||||
image = "docker.io/postgres:16";
|
container_name = "netbox-housekeeping";
|
||||||
restart = "unless-stopped";
|
command = ["/opt/netbox/housekeeping.sh"];
|
||||||
volumes = ["${config.custom.containers.directory}/netbox/db:/var/lib/postgresql/data"];
|
depends_on = ["netbox"];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
worker.service =
|
||||||
|
netbox
|
||||||
|
// {
|
||||||
|
container_name = "netbox-worker";
|
||||||
|
command = ["/opt/netbox/venv/bin/python" "/opt/netbox/netbox/manage.py" "rqworker"];
|
||||||
|
depends_on = ["netbox"];
|
||||||
|
};
|
||||||
|
|
||||||
|
cache.service = {
|
||||||
|
container_name = "netbox-cache";
|
||||||
|
command = ["sh" "-c" "valkey-server --requirepass $$REDIS_PASSWORD"];
|
||||||
|
env_file = [config.age.secrets."${config.custom.profile}/netbox/cache.env".path];
|
||||||
|
image = "docker.io/valkey/valkey:8.0";
|
||||||
|
restart = "unless-stopped";
|
||||||
|
};
|
||||||
|
|
||||||
|
db.service = {
|
||||||
|
container_name = "netbox-db";
|
||||||
|
env_file = [config.age.secrets."${config.custom.profile}/netbox/db.env".path];
|
||||||
|
image = "docker.io/postgres:16";
|
||||||
|
restart = "unless-stopped";
|
||||||
|
volumes = ["${config.custom.containers.directory}/netbox/db:/var/lib/postgresql/data"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -22,60 +22,56 @@ in {
|
||||||
#?? arion-nextcloud pull
|
#?? arion-nextcloud pull
|
||||||
environment.shellAliases.arion-nextcloud = "sudo arion --prebuilt-file ${config.virtualisation.arion.projects.nextcloud.settings.out.dockerComposeYaml}";
|
environment.shellAliases.arion-nextcloud = "sudo arion --prebuilt-file ${config.virtualisation.arion.projects.nextcloud.settings.out.dockerComposeYaml}";
|
||||||
|
|
||||||
virtualisation.arion.projects.nextcloud = {
|
virtualisation.arion.projects.nextcloud.settings.services = {
|
||||||
serviceName = "nextcloud";
|
# https://github.com/nextcloud/docker
|
||||||
|
nextcloud.service = {
|
||||||
|
container_name = "nextcloud";
|
||||||
|
env_file = [config.age.secrets."${config.custom.profile}/nextcloud/.env".path];
|
||||||
|
image = "nextcloud:29-apache";
|
||||||
|
ports = ["127.0.0.1:8181:80"];
|
||||||
|
restart = "unless-stopped";
|
||||||
|
|
||||||
settings.services = {
|
volumes = [
|
||||||
# https://github.com/nextcloud/docker
|
"${config.custom.containers.directory}/nextcloud/app:/var/www/html"
|
||||||
nextcloud.service = {
|
"${config.custom.containers.directory}/nextcloud/data:/var/www/html/data"
|
||||||
container_name = "nextcloud";
|
];
|
||||||
env_file = [config.age.secrets."${config.custom.profile}/nextcloud/.env".path];
|
|
||||||
image = "nextcloud:29-apache";
|
|
||||||
ports = ["127.0.0.1:8181:80"];
|
|
||||||
restart = "unless-stopped";
|
|
||||||
|
|
||||||
volumes = [
|
depends_on = [
|
||||||
"${config.custom.containers.directory}/nextcloud/app:/var/www/html"
|
"db"
|
||||||
"${config.custom.containers.directory}/nextcloud/data:/var/www/html/data"
|
"cache"
|
||||||
];
|
];
|
||||||
|
};
|
||||||
|
|
||||||
depends_on = [
|
cron.service = {
|
||||||
"db"
|
container_name = "nextcloud-cron";
|
||||||
"cache"
|
entrypoint = "/cron.sh";
|
||||||
];
|
image = "nextcloud:29-apache";
|
||||||
};
|
restart = "unless-stopped";
|
||||||
|
volumes =
|
||||||
|
config.virtualisation.arion.projects.nextcloud.settings.services.nextcloud.service.volumes; # volumes_from
|
||||||
|
|
||||||
cron.service = {
|
depends_on = [
|
||||||
container_name = "nextcloud-cron";
|
"db"
|
||||||
entrypoint = "/cron.sh";
|
"cache"
|
||||||
image = "nextcloud:29-apache";
|
];
|
||||||
restart = "unless-stopped";
|
};
|
||||||
volumes =
|
|
||||||
config.virtualisation.arion.projects.nextcloud.settings.services.nextcloud.service.volumes; # volumes_from
|
|
||||||
|
|
||||||
depends_on = [
|
cache.service = {
|
||||||
"db"
|
container_name = "nextcloud-cache";
|
||||||
"cache"
|
image = "redis:latest";
|
||||||
];
|
restart = "unless-stopped";
|
||||||
};
|
volumes = ["${config.custom.containers.directory}/nextcloud/cache:/data"];
|
||||||
|
};
|
||||||
|
|
||||||
cache.service = {
|
db.service = {
|
||||||
container_name = "nextcloud-cache";
|
container_name = "nextcloud-db";
|
||||||
image = "redis:latest";
|
env_file = [config.age.secrets."${config.custom.profile}/nextcloud/db.env".path];
|
||||||
restart = "unless-stopped";
|
image = "postgres:15";
|
||||||
volumes = ["${config.custom.containers.directory}/nextcloud/cache:/data"];
|
restart = "unless-stopped";
|
||||||
};
|
|
||||||
|
|
||||||
db.service = {
|
volumes = [
|
||||||
container_name = "nextcloud-db";
|
"${config.custom.containers.directory}/nextcloud/db:/var/lib/postgresql/data"
|
||||||
env_file = [config.age.secrets."${config.custom.profile}/nextcloud/db.env".path];
|
];
|
||||||
image = "postgres:15";
|
|
||||||
restart = "unless-stopped";
|
|
||||||
|
|
||||||
volumes = [
|
|
||||||
"${config.custom.containers.directory}/nextcloud/db:/var/lib/postgresql/data"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -12,23 +12,19 @@ in {
|
||||||
#?? arion-redlib pull
|
#?? arion-redlib pull
|
||||||
environment.shellAliases.arion-redlib = "sudo arion --prebuilt-file ${config.virtualisation.arion.projects.redlib.settings.out.dockerComposeYaml}";
|
environment.shellAliases.arion-redlib = "sudo arion --prebuilt-file ${config.virtualisation.arion.projects.redlib.settings.out.dockerComposeYaml}";
|
||||||
|
|
||||||
virtualisation.arion.projects.redlib = {
|
virtualisation.arion.projects.redlib.settings.services = {
|
||||||
serviceName = "redlib";
|
redlib.service = {
|
||||||
|
container_name = "redlib";
|
||||||
|
image = "quay.io/redlib/redlib:latest";
|
||||||
|
ports = ["127.0.0.1:8888:8080"];
|
||||||
|
restart = "unless-stopped";
|
||||||
|
|
||||||
settings.services = {
|
environment = {
|
||||||
redlib.service = {
|
REDLIB_DEFAULT_HIDE_HLS_NOTIFICATION = "on";
|
||||||
container_name = "redlib";
|
REDLIB_DEFAULT_SHOW_NSFW = "on";
|
||||||
image = "quay.io/redlib/redlib:latest";
|
REDLIB_DEFAULT_THEME = "dracula";
|
||||||
ports = ["127.0.0.1:8888:8080"];
|
REDLIB_DEFAULT_USE_HLS = "on";
|
||||||
restart = "unless-stopped";
|
REDLIB_DEFAULT_WIDE = "off";
|
||||||
|
|
||||||
environment = {
|
|
||||||
REDLIB_DEFAULT_HIDE_HLS_NOTIFICATION = "on";
|
|
||||||
REDLIB_DEFAULT_SHOW_NSFW = "on";
|
|
||||||
REDLIB_DEFAULT_THEME = "dracula";
|
|
||||||
REDLIB_DEFAULT_USE_HLS = "on";
|
|
||||||
REDLIB_DEFAULT_WIDE = "off";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -21,33 +21,29 @@ in {
|
||||||
#?? arion-searxng pull
|
#?? arion-searxng pull
|
||||||
environment.shellAliases.arion-searxng = "sudo arion --prebuilt-file ${config.virtualisation.arion.projects.searxng.settings.out.dockerComposeYaml}";
|
environment.shellAliases.arion-searxng = "sudo arion --prebuilt-file ${config.virtualisation.arion.projects.searxng.settings.out.dockerComposeYaml}";
|
||||||
|
|
||||||
virtualisation.arion.projects.searxng = {
|
virtualisation.arion.projects.searxng.settings.services = {
|
||||||
serviceName = "searxng";
|
# https://github.com/searxng/searxng
|
||||||
|
# https://github.com/searxng/searxng-docker
|
||||||
|
searxng.service = {
|
||||||
|
container_name = "searxng";
|
||||||
|
depends_on = ["cache"];
|
||||||
|
env_file = [config.age.secrets."${config.custom.profile}/searxng/.env".path];
|
||||||
|
image = "searxng/searxng:latest";
|
||||||
|
ports = ["127.0.0.1:8000:8080"];
|
||||||
|
restart = "unless-stopped";
|
||||||
|
|
||||||
settings.services = {
|
volumes = [
|
||||||
# https://github.com/searxng/searxng
|
"${./limiter.toml}:/etc/searxng/limiter.toml"
|
||||||
# https://github.com/searxng/searxng-docker
|
"${./settings.yml}:/etc/searxng/settings.yml"
|
||||||
searxng.service = {
|
];
|
||||||
container_name = "searxng";
|
};
|
||||||
depends_on = ["cache"];
|
|
||||||
env_file = [config.age.secrets."${config.custom.profile}/searxng/.env".path];
|
|
||||||
image = "searxng/searxng:latest";
|
|
||||||
ports = ["127.0.0.1:8000:8080"];
|
|
||||||
restart = "unless-stopped";
|
|
||||||
|
|
||||||
volumes = [
|
# https://github.com/valkey-io/valkey
|
||||||
"${./limiter.toml}:/etc/searxng/limiter.toml"
|
cache.service = {
|
||||||
"${./settings.yml}:/etc/searxng/settings.yml"
|
command = "valkey-server --save 60 1 --loglevel warning";
|
||||||
];
|
container_name = "searxng-cache";
|
||||||
};
|
image = "valkey/valkey:7-alpine";
|
||||||
|
restart = "unless-stopped";
|
||||||
# https://github.com/valkey-io/valkey
|
|
||||||
cache.service = {
|
|
||||||
command = "valkey-server --save 60 1 --loglevel warning";
|
|
||||||
container_name = "searxng-cache";
|
|
||||||
image = "valkey/valkey:7-alpine";
|
|
||||||
restart = "unless-stopped";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue