mirror of
https://github.com/Death916/nixconfig.git
synced 2026-04-10 02:54:39 -07:00
piefed and flake
This commit is contained in:
parent
31ad3df72d
commit
dc52c634fc
1 changed files with 93 additions and 0 deletions
93
modules/containers/piefed/piefed-containers.nix
Normal file
93
modules/containers/piefed/piefed-containers.nix
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
localDir = "/var/lib/piefed";
|
||||
mediaDir = "/mnt/myjfs/piefed/media";
|
||||
in
|
||||
{
|
||||
systemd.tmpfiles.rules = [
|
||||
"d ${localDir} 0755 root root -"
|
||||
"d ${localDir}/db 0700 1000 1000 -"
|
||||
"d ${localDir}/redis 0700 999 999 -"
|
||||
"d ${localDir}/logs 0755 1000 1000 -"
|
||||
"d ${localDir}/tmp 0755 1000 1000 -"
|
||||
"d ${mediaDir} 0755 1000 1000 -"
|
||||
];
|
||||
|
||||
virtualisation.oci-containers = {
|
||||
backend = "docker";
|
||||
containers = {
|
||||
piefed-db = {
|
||||
image = "postgres:17";
|
||||
volumes = [ "${localDir}/db:/var/lib/postgresql/data" ];
|
||||
environmentFiles = [ "${localDir}/.env.docker" ];
|
||||
cmd = [
|
||||
"postgres"
|
||||
"-c" "shared_buffers=1GB"
|
||||
"-c" "effective_cache_size=2GB"
|
||||
"-c" "work_mem=32MB"
|
||||
"-c" "maintenance_work_mem=256MB"
|
||||
"-c" "checkpoint_completion_target=0.9"
|
||||
"-c" "wal_buffers=16MB"
|
||||
"-c" "max_wal_size=3GB"
|
||||
"-c" "min_wal_size=1GB"
|
||||
"-c" "random_page_cost=1.1"
|
||||
"-c" "effective_io_concurrency=200"
|
||||
"-c" "max_connections=150"
|
||||
"-c" "jit=off"
|
||||
];
|
||||
extraOptions = [ "--shm-size=2gb" "--user=1000:1000" "--network=piefed_net" ];
|
||||
};
|
||||
|
||||
piefed-redis = {
|
||||
image = "redis:6.2";
|
||||
volumes = [ "${localDir}/redis:/data" ];
|
||||
environmentFiles = [ "${localDir}/.env.docker" ];
|
||||
extraOptions = [ "--network=piefed_net" ];
|
||||
};
|
||||
|
||||
piefed-web = {
|
||||
image = "elestio/piefed:latest";
|
||||
dependsOn = [ "piefed-db" "piefed-redis" ];
|
||||
environmentFiles = [ "${localDir}/.env.docker" ];
|
||||
volumes = [
|
||||
"${mediaDir}:/app/app/static/media"
|
||||
"${localDir}/logs:/app/logs"
|
||||
"${localDir}/tmp:/app/app/static/tmp"
|
||||
];
|
||||
ports = [ "8030:5000" ];
|
||||
extraOptions = [ "--network=piefed_net" ];
|
||||
};
|
||||
|
||||
piefed-celery = {
|
||||
image = "elestio/piefed:latest";
|
||||
dependsOn = [ "piefed-db" "piefed-redis" ];
|
||||
environmentFiles = [ "${localDir}/.env.docker" ];
|
||||
entrypoint = "./entrypoint_celery.sh";
|
||||
volumes = [
|
||||
"${mediaDir}:/app/app/static/media"
|
||||
"${localDir}/logs:/app/logs"
|
||||
"${localDir}/tmp:/app/app/static/tmp"
|
||||
];
|
||||
extraOptions = [ "--network=piefed_net" ];
|
||||
};
|
||||
|
||||
piefed-notifs = {
|
||||
image = "elestio/piefed:latest";
|
||||
dependsOn = [ "piefed-redis" ];
|
||||
environmentFiles = [ "${localDir}/.env.docker" ];
|
||||
entrypoint = "./entrypoint_async.sh";
|
||||
ports = [ "8040:8000" ];
|
||||
extraOptions = [ "--network=piefed_net" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.init-piefed-network = {
|
||||
description = "Create Docker network for Piefed";
|
||||
after = [ "docker.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig.Type = "oneshot";
|
||||
script = "${pkgs.docker}/bin/docker network create piefed_net || true";
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue