Slash is designed for self-hosting through Docker. No Docker expertise is required to launch your own instance. Just basic understanding of command line and networking.
The only requirement is a server with Docker installed.
To deploy Slash using docker run, just one command is needed:
docker run -d --name slash --publish 5231:5231 --volume ~/.slash/:/var/opt/slash yourselfhosted/slash:latestThis will start Slash in the background and expose it on port 5231. Data is stored in ~/.slash/. You can customize the port and data directory.
To upgrade Slash to latest version, stop and remove the old container first:
docker stop slash && docker rm slashIt's recommended but optional to backup database:
cp -r ~/.slash/slash_prod.db ~/.slash/slash_prod.db.bakThen pull the latest image:
docker pull yourselfhosted/slash:latestFinally, restart Slash by following the steps in Docker Run.
Assume that docker compose is deployed in the /opt/slash directory.
mkdir -p /opt/slash && cd /opt/slash
curl -#LO https://github.com/yourselfhosted/slash/raw/main/docker-compose.yml
docker compose up -dThis will start Slash in the background and expose it on port 5231. Data is stored in Docker Volume slash_slash. You can customize the port and backup your volume.
Slash supports the following database types:
- SQLite (default)
- PostgreSQL
To switch to PostgreSQL, you can use the following steps:
-
--driver postgres : This argument specifies that Slash should use the
postgresdriver instead of the defaultsqlite. -
--dsn postgresql://postgres:PASSWORD@localhost:5432/slash : Provides the connection details for your PostgreSQL server.
You can start Slash with Docker using the following command:
docker run -d --name slash --publish 5231:5231 --volume ~/.slash/:/var/opt/slash yourselfhosted/slash:latest --driver postgres --dsn 'postgresql://postgres:PASSWORD@localhost:5432/slash'Additionally, you can set these configurations via environment variables:
SLASH_DRIVER=postgres
SLASH_DSN=postgresql://root:password@localhost:5432/slashNote that if the PostgreSQL server is not configured to support SSL connections you will need to add ?sslmode=disable to the DSN.