petersweb-infra/nixos/arion-riverside/arion-compose.nix
Philip Peterson 93506862ec Move riverside to arion with postgres companion service
riverside needs a postgres sidecar which oci-containers can't express.
Also adds docker to arion PATH (fixes forgejo-arion) and creates
/var/riverside/{files,postgres} state directories.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-14 14:23:42 -08:00

52 lines
1.4 KiB
Nix

{ pkgs, ... }:
{
project.name = "riverside";
networks.riverside.external = false;
services = {
app = {
service = {
image = "forge.quinefoundation.com/ironmagma/riverside@sha256:23c17a769f001c0c41eb78119183549f884555e5604f017b1e03858dc5888d60";
container_name = "riverside";
restart = "unless-stopped";
networks = [ "riverside" ];
environment = {
DB_HOST = "postgres";
DB_NAME = "drupal";
DB_USER = "drupal";
DB_PASS = "drupal";
SITE_NAME = "Portfolio";
};
volumes = [
"/var/riverside/files:/var/www/html/web/sites/default/files"
];
ports = [ "3011:8080" ];
depends_on = [ "postgres" ];
};
};
postgres = {
service = {
image = "postgres:18-alpine";
container_name = "riverside-postgres";
restart = "unless-stopped";
networks = [ "riverside" ];
environment = {
POSTGRES_DB = "drupal";
POSTGRES_USER = "drupal";
POSTGRES_PASSWORD = "drupal";
};
volumes = [
"/var/riverside/postgres:/var/lib/postgresql/data"
];
healthcheck = {
test = [ "CMD-SHELL" "pg_isready -U drupal -d drupal" ];
interval = "5s";
timeout = "5s";
retries = 20;
};
};
};
};
}