53 lines
1.4 KiB
Nix
53 lines
1.4 KiB
Nix
|
# for documentation on how this container works, have a look at
|
||
|
# https://wiki.infra4future.de/books/voc-infra/page/wink-65b
|
||
|
|
||
|
{ pkgs, config, ...}:
|
||
|
|
||
|
{
|
||
|
containers.wink = {
|
||
|
autoStart = true;
|
||
|
privateNetwork = true;
|
||
|
hostAddress = "192.168.100.10";
|
||
|
localAddress = "192.168.100.11";
|
||
|
|
||
|
# expose the wink database for easier backups / migrations
|
||
|
bindMounts."/var/lib/wink/db" = {
|
||
|
hostPath = "/var/lib/wink-db";
|
||
|
isReadOnly = false;
|
||
|
};
|
||
|
|
||
|
config = {pkgs, config, ...}: {
|
||
|
networking.firewall.allowedTCPPorts = [ 3000 ];
|
||
|
environment.systemPackages = [ pkgs.wink pkgs.v8 ];
|
||
|
|
||
|
systemd.services.wink = {
|
||
|
enable = true;
|
||
|
description = "Wo ist meine Winkekatze?";
|
||
|
wantedBy = [ "multi-user.target" ];
|
||
|
serviceConfig.type = "simple";
|
||
|
environment.HOME = "/var/lib/wink/home";
|
||
|
path = [ pkgs.wink pkgs.v8 ];
|
||
|
script = ''
|
||
|
mkdir -p /var/lib/wink/home
|
||
|
cd /var/lib/wink
|
||
|
cp -r ${pkgs.wink.outPath}/* .
|
||
|
if [ ! -f database.exists ]
|
||
|
then
|
||
|
rails-wrapped db:migrate db:seed RAILS_ENV=development
|
||
|
touch database.exists
|
||
|
fi
|
||
|
rails-wrapped server -b [::] -p 3000
|
||
|
'';
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
|
||
|
services.nginx.virtualHosts."wink.hacc.space" = {
|
||
|
locations."/".proxyPass = "http://${config.containers.wink.localAddress}:3000";
|
||
|
forceSSL = true;
|
||
|
enableACME = true;
|
||
|
};
|
||
|
|
||
|
}
|