diff --git a/.gitignore b/.gitignore index 85af4f7..d2ae739 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,6 @@ env* __pycache__ +*.pkg.tar.zst +/nummi-git/ +/pkg/ +/src/ diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 0000000..6729a49 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,45 @@ +pkgname=nummi-git +pkgver=r80.73ce1a2 +pkgrel=1 +pkgdesc="Web-based accounting interface" +arch=("any") +url="https://git.edgarpierre.fr/edpibu/nummi" +license=('AGPL3') +depends=( + "gunicorn" + "python-django" + "python-matplotlib" +) +makedepends=("git") +optdepends=("postgresql: database") +backup=("etc/${pkgname%-git}.env") +source=( + "${pkgname}::git+ssh://gitea@git.edgarpierre.fr:39529/edpibu/nummi.git" + "${pkgname%-git}.service" + "${pkgname%-git}.tmpfiles" + "${pkgname%-git}.sysusers" + "${pkgname%-git}.nginx" + "${pkgname%-git}.env" +) +b2sums=('SKIP' + '9e9b62a141bb4594dc203978d5c56dd397ed6c095e6f83fdea07ded2fa46dd2e052aa8f80729a3b612e3773aa487660fcca791079ad4885b825c9c831df61b45' + '2be5a55e8582a680a17c133c28b43f0a27800acc855c90ae670486b3847b91a47216d15a029670cdc3c55c193371b060cfe3b01bf4f858a64b64da9711067188' + '3d31754c644e05ec01bc07ebfb89749d563260abb4507297aceaaeebe2f057517ccc3e1c61dbb2eb864779260cd3c7aad01939775525b6bf6461267587dea156' + 'b86c46f17b5445b5631a3725ed3d4cd3bf1e864c68f8db8cecba1f8ae554e1e4872d8a86bfe6ab5172507f8315ebeccf78c9fbe3bb9eeb71c21113450e0df4d5' + '5bdc097ab3fa7e8e128d194bfb6c0fefb5528903e2b8765557a82033f8925c1174dbe73007a595e32c5e415cf6f19957c35bbe463c50d2813894c20c8a28a88d') + +pkgver() { + cd "$pkgname" + printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} + +package() { + install -Dm644 ${pkgname%-git}.service -t "${pkgdir}"/usr/lib/systemd/system/ + install -Dm644 ${pkgname%-git}.tmpfiles "${pkgdir}"/usr/lib/tmpfiles.d/${pkgname%-git}.conf + install -Dm644 ${pkgname%-git}.sysusers "${pkgdir}"/usr/lib/sysusers.d/${pkgname%-git}.conf + install -Dm644 ${pkgname%-git}.nginx "${pkgdir}"/etc/nginx/sites-enabled/${pkgname%-git}.conf + install -Dm750 ${pkgname%-git}.env -t "${pkgdir}"/etc/ + + cd ${pkgname}/${pkgname%-git} + find * -type f -exec install -Dm0644 "{}" "${pkgdir}/usr/share/webapps/${pkgname%-git}/{}" \; +} diff --git a/README.md b/README.md index afed63d..f7c37f0 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,3 @@ Nummi is a web-based accounting software. Nummi uses Django. - -## Installation - -A PKGBUILD along with system files is provided on the -[pkgbuild](https://git.edgarpierre.fr/edpibu/nummi/src/branch/pkgbuild) branch. diff --git a/nummi.env b/nummi.env new file mode 100644 index 0000000..345a556 --- /dev/null +++ b/nummi.env @@ -0,0 +1,4 @@ +NUMMI_MEDIA_ROOT="/var/lib/nummi" +NUMMI_SECRET="xxxxxx" +#NUMMI_DEBUG="True" +NUMMI_HOST="nummi.edgarpierre.fr" diff --git a/nummi.nginx b/nummi.nginx new file mode 100644 index 0000000..f69fd24 --- /dev/null +++ b/nummi.nginx @@ -0,0 +1,15 @@ +server { + listen 443 ssl http2; + listen [::]:443 ssl http2; + server_name nummi.edgarpierre.fr; + + location / { + include conf/50-proxy.conf; + + proxy_pass http://unix:/run/nummi/nummi.socket; + } + + location /static { + alias /srv/nummi; + } +} diff --git a/nummi.service b/nummi.service new file mode 100644 index 0000000..d61fc56 --- /dev/null +++ b/nummi.service @@ -0,0 +1,21 @@ +[Unit] +Description=Nummi server (accounting) +After=network.target + +[Service] +Type=simple +User=nummi +Group=nummi +RuntimeDirectory=nummi +WorkingDirectory=/usr/share/webapps/nummi +EnvironmentFile=/etc/nummi.env +ExecStartPre=/usr/bin/python manage.py migrate +ExecStartPre=/usr/bin/python manage.py collectstatic --noinput +ExecStart=/usr/bin/uvicorn nummi.asgi:application --uds /run/nummi/nummi.socket +ExecReload=/bin/kill -s HUP $MAINPID +KillMode=mixed +TimeoutStopSec=5 +PrivateTmp=true + +[Install] +WantedBy=multi-user.target diff --git a/nummi.tmpfiles b/nummi.tmpfiles new file mode 100644 index 0000000..8cd104e --- /dev/null +++ b/nummi.tmpfiles @@ -0,0 +1,2 @@ +d /var/lib/nummi 0750 nummi nummi +d /srv/nummi 0755 nummi nummi