Skip to content

snappass with nginx uwsgi

Yevgeny Kosarzhevsky edited this page May 25, 2020 · 2 revisions

Install snappass with nginx/uwsgi

On Debian-based Linux:

  1. Install required packages:

apt-get --no-install-recommends install python3-pip python3-setuptools python3-wheel uwsgi uwsgi-plugin-python3 nginx nginx-light redis

  1. Install snappass:

pip3 install snappass

  1. Add somewhere to nginx (like /etc/nginx/sites-enabled/default):
        location /snappass {
                alias /usr/local/lib/python3.7/dist-packages/snappass/static/;
                try_files $uri @snappass;
        }
        location @snappass {
                include uwsgi_params;
                uwsgi_pass unix:/run/uwsgi/app/snappass/socket;
        }
  1. Create file /etc/uwsgi/apps-available/snappass.ini:
[uwsgi]
master = true
procname = uwsgi-snappass
procname-master = uwsgi-snappass-master
manage-script-name = true
plugin = python3
processes = 2
wsgi-file = /usr/local/lib/python3.7/dist-packages/snappass/main.py
callable = app
mount = /snappass=/usr/local/lib/python3.7/dist-packages/snappass/main.py
env = REDIS_URL=unix:///run/redis/redis.sock?db=0
env = SECRET_KEY=mysecret
env = NO_SSL=1
env = URL_PREFIX=/snappass
  1. Enable snappass:

(cd /etc/uwsgi/apps-enabled; ln -s ../apps-available/snappass.ini .)

  1. Edit /etc/redis/redis.conf:
protected-mode yes
port 0
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /var/run/redis/redis-server.pid
loglevel notice
logfile /var/log/redis/redis-server.log
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /var/lib/redis
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
replica-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
unixsocket /run/redis/redis.sock
unixsocketperm 660
  1. Add uwsgi user to redis group:

adduser www-data redis

  1. Restart services:

for i in redis-server uwsgi nginx; do invoke-rc.d $i restart; done

  1. Visit your snappass at http://localhost/snappass
Clone this wiki locally