3.1 KiB
Running a Firefish server with Docker
Prerequisites
- Latest Docker installation
- Alternatively, you can use Podman and Podman Compose.
- The following ports are not in use
- 80
- 443
- 3000
- 5432
- 6379
Pre-built docker container
registry.firefish.dev/firefish/firefish
Config files
There are example config files that you can use to build the container from source
- docker-compose.example.yml (compose file)
- .config/docker_example.env (db config settings)
- .config/default.yml (Firefish server settings)
Configuring
Copy the files:
cp docker-compose.example.yml docker-compose.yml
cp .config/example.yml .config/default.yml
cp .config/docker_example.env .config/docker.env
then edit them according to your environment.
You can configure docker.env
with anything you like, but you will have to pay attention to the default.yml
file:
url
should be set to the URL you will be hosting the web interface for the server at.host
,db
,user
,pass
will have to be configured in thePostgreSQL configuration
section -host
is the name of the postgres container (eg: firefish_db_1), and the others should match yourdocker.env
.host
will need to be configured in the Redis configuration section - it is the name of the redis container (eg: firefish_redis_1)
Everything else can be left as-is.
Running
The prebuilt container for firefish is fairly large, and may take a few minutes to download and extract using docker.
Copy docker-compose.yml
and the config/
to a directory, then run the docker compose command: docker compose up -d
.
- If you use Podman, you should run podman-compose up
instead.
NOTE: This will take some time to come fully online, even after download and extracting the container images, and it may emit some error messages before completing successfully. Specifically, the db
container needs to initialize and so isn't available to the web
container right away. Only once the db
container comes online does the web
container start building and initializing the firefish tables.
Once the server is up you can use a web browser to access the web interface at http://serverip:3000
(where serverip
is the IP of the server you are running the firefish server on).
Install reverse proxy
Caddy (recommended for new users)
- Add the following block to your
Caddyfile
, replacingexample.tld
with your own domain:
example.tld {
reverse_proxy http://127.0.0.1:3000
}
- Reload your caddy configuration
Nginx (recommended)
- Run
sudo cp ./firefish.nginx.conf /etc/nginx/sites-available/ && cd /etc/nginx/sites-available/
- Edit
firefish.nginx.conf
to reflect your server properly - Run
sudo ln -s ./firefish.nginx.conf ../sites-enabled/firefish.nginx.conf
- Run
sudo nginx -t
to validate that the config is valid, then restart the NGINX service.