1

add e11sync-caddy

This commit is contained in:
Motiejus Jakštys 2024-01-15 11:57:36 +02:00
parent 9870e5c239
commit c3d052ad01
5 changed files with 56 additions and 4 deletions

View File

@ -11,7 +11,10 @@ format:
run: run:
app/manage.py runserver app/manage.py runserver
# "Like production". Run with "run-caddy".
.PHONY: run-gunicorn .PHONY: run-gunicorn
run-gunicorn: run-gunicorn:
nix run .#e11sync-gunicorn nix run .#e11sync-gunicorn
.PHONY: run-caddy
run-caddy:
nix run .#e11sync-caddy

View File

@ -38,7 +38,7 @@ SECRET_KEY = _SECRET_KEY
DEBUG = _DEBUG DEBUG = _DEBUG
ALLOWED_HOSTS = ["127.0.0.1"] ALLOWED_HOSTS = ["127.0.0.1", "localhost"]
INTERNAL_IPS = ["127.0.0.1"] INTERNAL_IPS = ["127.0.0.1"]
@ -140,7 +140,7 @@ COMPRESS_FILTERS = {
} }
COMPRESS_PRECOMPILERS = ( COMPRESS_PRECOMPILERS = (
('text/x-scss', 'sass {infile} {outfile}'), ('text/x-scss', 'sass --no-source-map {infile} {outfile}'),
) )
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'

View File

@ -44,11 +44,16 @@
e11sync-static = pkgs.callPackage ./pkgs/e11sync-static.nix {}; e11sync-static = pkgs.callPackage ./pkgs/e11sync-static.nix {};
e11sync-caddy = pkgs.callPackage ./pkgs/e11sync-caddy.nix {
inherit e11sync-static;
};
e11sync = pkgs.callPackage ./pkgs/e11sync.nix {inherit geoip-mmdb;}; e11sync = pkgs.callPackage ./pkgs/e11sync.nix {inherit geoip-mmdb;};
in { in {
packages = { packages = {
inherit geoip-mmdb; inherit geoip-mmdb;
inherit e11sync-static; inherit e11sync-static;
inherit e11sync-caddy;
inherit e11sync; inherit e11sync;
}; };
@ -89,6 +94,28 @@
exec ${e11sync}/bin/e11sync-gunicorn exec ${e11sync}/bin/e11sync-gunicorn
''); '');
}; };
e11sync-caddy = {
type = "app";
name = "e11sync-caddy";
program = let
caddyFile = pkgs.writeTextFile {
name = "Caddyfile";
text = ''
{
http_port 8001
auto_https off
debug
}
:8001
${builtins.readFile "${e11sync-caddy}"}
'';
};
in
toString (pkgs.writeShellScript "wrapper" ''
exec ${pkgs.caddy}/bin/caddy run --config ${caddyFile} --adapter caddyfile
'');
};
}; };
devShells.default = pkgs.mkShellNoCC { devShells.default = pkgs.mkShellNoCC {

22
pkgs/e11sync-caddy.nix Normal file
View File

@ -0,0 +1,22 @@
{
writeTextFile,
e11sync-static,
gunicornPort ? 8002,
}:
writeTextFile {
name = "e11sync-caddy";
text = ''
header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
header /static/CACHE/* Cache-Control "public, max-age=31536000, immutable"
route /static/* {
uri strip_prefix /static
file_server * {
root ${e11sync-static}
precompressed br gzip
}
}
reverse_proxy http://127.0.0.1:${toString gunicornPort}
'';
}

View File

@ -6,7 +6,7 @@
python3Packages, python3Packages,
libmaxminddb, libmaxminddb,
dart-sass, dart-sass,
gunicornPort ? 8001, gunicornPort ? 8002,
database-path ? null, database-path ? null,
geoip-mmdb, geoip-mmdb,
}: }: