Go to file
2024-11-17 16:25:23 +01:00
static/content tux me up 2024-11-16 09:47:07 +01:00
templates list of files 2024-11-16 10:32:31 +01:00
.gitignore fix: ignore static files 2024-11-16 17:40:06 +01:00
LICENSE Initial commit 2024-11-15 14:22:40 +01:00
README.md docs: moar deploy 2024-11-17 16:25:23 +01:00
requirements.txt round up a readme 2024-11-16 10:39:54 +01:00
upload.py fix: save before loading list 2024-11-16 17:41:06 +01:00

image_upload

Requires Python >= 3.11.x 👍

  • install dependencies: pip install -r requirements.txt
  • create static images folder: mkdir -p ./static/images
  • launch the application: python upload.py

deploy

pip install gunicorn
gunicorn --bind 127.0.0.1:5000 upload:APP

nginx

Something like this. You need to replace <DOMAIN> / <YOUR-MESSAGE> / <ABS-PATH>. It's advised to protect image_upload beside some form of authentication to avoid nasty surprises.

upstream gunicorn {
  server 127.0.0.1:5000 fail_timeout=0;
}

server {
  listen 80;
  listen 443 ssl;

  server_name <DOMAIN>;

  location / {
    proxy_pass http://gunicorn;
    auth_basic "<YOUR-MESSAGE>";
    auth_basic_user_file /etc/nginx/.htpasswd;
  }

  location /static/images/ {
    autoindex on;
    alias /var/www/<ABS-PATH>/static/images/;
  }
}

systemd

[Unit]
Description=image_upload
After=syslog.target network.target

[Service]
User=<USER>
WorkingDirectory=<ABS-PATH>
ExecStart=<ABS-PATH>/.venv/bin/gunicorn --bind 127.0.0.1:5000 upload:APP
RemainAfterExit=no
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

Where you replace <USER> with your preferred system user. <ABS-PATH> should be the system path when the repository is cloned. Note, a virtual environment was created at <ABS-PATH>/.venv/... with the dependencies installed.