SnapOtter provides:
As usual, you need to create the snapotter user:
useradd -d /data/daemons/snapotter -m snapotter mkdir /data/snapotter chown snapotter:snapotter /data/snapotter
Then, as user snapotter, create the following docker compose yaml (see this compose file here):
services:
SnapOtter:
image: snapotter/snapotter:latest
ports:
- "1349:1349"
devices:
- nvidia.com/gpu=all
annotations:
run.oci.keep_original_groups: "true" # required for GPU acceleration
volumes:
- /data/snapotter:/data
environment:
- AUTH_ENABLED=true
- DEFAULT_USERNAME=admin
- DEFAULT_PASSWORD=password
networks:
- snapotter-network
networks:
snapotter-network: {}
The devices section is to enable GPU passtrough, see Open WebUI and Ollama for more details.
After the first run, you can (and should) remove DEFAULT_USERNAME and DEFAULT_PASSWORD from the compose file.
Set a proper port for your needs, one that is free from all your other services.
And then pull the images:
su - snapotter
podman compose pull
I am running SnapOtter on https://otter.mydomain.com.
This is my recomended one for NGINX:
server {
server_name otter.mydomain.com;
listen 8443 ssl;
listen 443 ssl;
access_log /var/log/nginx/otter.mydomain.com_access_log main;
error_log /var/log/nginx/otter.mydomain.com_error_log info;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_http_version 1.1;
proxy_pass http://127.0.0.1:1349;
proxy_redirect http:// https://;
}
include com.mydomain/certbot.conf;
}
To start it, and set it up on boot, as usual follow my indications Using Containers on Gentoo, so link the user-containers init script:
ln -s /etc/init.d/user-containers /etc/init.d/user-containers.snapotter
and create the following config file:
USER=snapotter DESCRIPTION="The snapotter server"
Add the service to the default runlevel and start it now:
rc-update add user-containers.snapotter default rc-service user-containers.snapotter start