mirror of
https://github.com/TheWanderingCrow/CrOS.git
synced 2026-01-12 10:14:09 -05:00
109 lines
3 KiB
Nix
109 lines
3 KiB
Nix
let
|
|
volumePath = "/overseer/services";
|
|
in
|
|
{
|
|
lib,
|
|
inputs,
|
|
config,
|
|
...
|
|
}: {
|
|
###########
|
|
# SECRETS #
|
|
###########
|
|
|
|
sops = {
|
|
# Meilisearch secrets
|
|
secrets."meilisearch/masterkey" = {};
|
|
templates."meilisearch-environment".content = ''
|
|
MEILI_MASTER_KEY=${config.sops.placeholder."meilisearch/masterkey"}
|
|
'';
|
|
|
|
# Bar Assistant secrets
|
|
templates."bar_assistant-env".content = ''
|
|
MEILISEARCH_KEY=${config.sops.placeholder."meilisearch/masterkey"}
|
|
'';
|
|
};
|
|
|
|
systemd.tmpfiles.rules = [
|
|
"d ${volumePath}/bar-assistant 770 33 33"
|
|
"d ${volumePath}/meilisearch"
|
|
];
|
|
|
|
###########
|
|
# Routing #
|
|
###########
|
|
|
|
services.nginx = {
|
|
enable = true;
|
|
recommendedProxySettings = true;
|
|
virtualHosts = {
|
|
"bar.wanderingcrow.net" = {
|
|
extraConfig = ''
|
|
allow 192.168.0.0/16;
|
|
allow 10.8.0.0/24;
|
|
allow ${inputs.nix-secrets.network.primary.publicIP}
|
|
deny all;
|
|
'';
|
|
forceSSL = true;
|
|
useACMEHost = "bar.wanderingcrow.net";
|
|
locations = {
|
|
"/search/" = {
|
|
proxyPass = "http://10.88.0.3:7700/";
|
|
priority = 1;
|
|
};
|
|
"/api/" = {
|
|
proxyPass = "http://10.88.0.4:8080/";
|
|
priority = 1;
|
|
};
|
|
"/" = {
|
|
proxyPass = "http://10.88.0.5:8080/";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
###########
|
|
# Service #
|
|
###########
|
|
|
|
virtualisation.oci-containers = {
|
|
backend = "podman";
|
|
containers = {
|
|
"meilisearch" = {
|
|
image = "getmeili/meilisearch:v1.8";
|
|
volumes = ["${volumePath}/meilisearch:/meili_data"];
|
|
extraOptions = ["--ip=10.88.0.3"];
|
|
environmentFiles = [config.sops.templates."meilisearch-environment".path];
|
|
environment = {
|
|
MEILI_ENV = "production";
|
|
MEILI_NO_ANALYTICS = "true";
|
|
};
|
|
};
|
|
"bar-assistant" = {
|
|
image = "barassistant/server:v4";
|
|
volumes = ["${volumePath}/bar-assistant:/var/www/cocktails/storage/bar-assistant"];
|
|
dependsOn = ["meilisearch"];
|
|
extraOptions = ["--ip=10.88.0.4"];
|
|
environmentFiles = [config.sops.templates."bar_assistant-env".path];
|
|
environment = {
|
|
APP_URL = "https://bar.wanderingcrow.net/api";
|
|
MEILISEARCH_HOST = "https://bar.wanderingcrow.net/search";
|
|
CACHE_DRIVER = "file";
|
|
SESSION_DRIVER = "file";
|
|
ALLOW_REGISTRATION = "true";
|
|
};
|
|
};
|
|
"salt-rim" = {
|
|
image = "barassistant/salt-rim:v3";
|
|
dependsOn = ["bar-assistant"];
|
|
extraOptions = ["--ip=10.88.0.5"];
|
|
ports = ["3001:8080"];
|
|
environment = {
|
|
API_URL = "https://bar.wanderingcrow.net/api";
|
|
MEILIESEARCH_URL = "https://bar.wanderingcrow.net/search";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|