Installation
If you choose a Docker-based installation, you must have Docker >= v18.0.9 installed (2019-09-03).
Compose and Git are packaged inside seelf itself so you don't have to bother with them.
With Compose (recommended)
Simply save the following compose.yml
file in a folder, configure it according to your needs and run docker compose up -d
:
services:
web:
restart: unless-stopped
image: yuukanoo/seelf:latest # <- You probably better sets the version explicitly here
environment:
- ADMIN_EMAIL=admin@example.com # <- Change this
- ADMIN_PASSWORD=admin # <- Change this
# (...) sets other environment variables here, see the configuration documentation
ports:
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ssh:/root/.ssh # If you deploy on remote servers, keep ssh related configurations
- data:/seelf/data # The /seelf/data directory contains the database, configuration file and everything deployed by seelf, so keep it :)
volumes:
ssh:
data:
With Docker
Don't forget to sets the appropriate environment variables according to your needs.
docker run -d \
-e "ADMIN_EMAIL=admin@example.com" \
-e "ADMIN_PASSWORD=admin" \
-v "/var/run/docker.sock:/var/run/docker.sock" \
-v "seelfdata:/seelf/data" \
-v "seelfssh:/root/.ssh" \
-p "8080:8080" \
yuukanoo/seelf
INFO
On windows, you may have to run the command on one line without the backslashes.
From sources
You'll need Go installed on your machine (at least 1.21) and Node for the frontend stuff (at least 1.18).
INFO
On Windows, you will need a gcc compiler such as tdm gcc to build the sqlite3 driver correctly.
Retrieve the seelf sources by either cloning the repository or downloading them on the Releases page and run:
make build && ./seelf serve
Exposing seelf itself
You probably want to expose seelf itself on an url without a port and with a valid certificate. You can manage this part yourself or just leverage the proxy deployed by seelf.
WARNING
If you choose to expose seelf with the local target, you should never delete the target or things may break.
If it happens, you can map the port 8080
to access your seelf instance (on the root domain and port) and reconfigure the target. Once done, you can remove the ports section since seelf will be exposed by the proxy.
To do this, we recommend to use the docker compose installation and add the missing parts.
services:
web:
restart: unless-stopped
image: yuukanoo/seelf:latest # <- You probably better sets the version explicitly here
container_name: seelf # Should match the user portion of EXPOSED_ON when exposing seelf using a local target
environment:
- ADMIN_EMAIL=admin@example.com # <- Change this
- ADMIN_PASSWORD=admin # <- Change this
# (...) sets other environment variables here, see the configuration documentation
- EXPOSED_ON=http://seelf@docker.localhost # <- Change this to where you want seelf to be exposed, the user part represents the container name, see above.
- HTTP_SECURE= # Force fallback to the default handling of http secure (based on EXPOSED_ON if set)
ports:
- "8080:8080"
labels:
- app.seelf.exposed=true
- app.seelf.subdomain=myseelf # Subdomain where seelf will be exposed on the default target represented by EXPOSED_ON, here http://myseelf.docker.localhost
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ssh:/root/.ssh # If you deploy on remote servers, keep ssh related configurations
- data:/seelf/data # The /seelf/data directory contains the database, configuration file and everything deployed by seelf, so keep it :)
volumes:
ssh:
data:
INFO
If set, the EXPOSED_ON
will be used to determine:
- The name of the seelf container itself which must be attached to the local target,
- The default local target URL if no one exists yet.
If a local target already exists, the container will be attached to it without updating the target URL.