FIRES Reference Server
The FediMod FIRES project includes a reference implementation of the server for the FIRES protocol. This server can be used in production. The automated installer using the docker image is the recommended way to deploy the FIRES reference server.
Deploying without docker (e.g., from source) is not recommended, since this requires quite a lot of knowledge of how to build & deploy Adonis.js Framework applications.
Installation
System Requirements
- Public IPv4 address (IPv6 is also supported, however may limit who can access your server)
- Public DNS name
- Public inbound internet access permitted on port 80/tcp and 443/tcp
Server Recommendations
| Requirement | Recommendation |
|---|---|
| Operating System | Debian 13 (Trixie) |
| Memory (RAM) | 1 GB |
| CPU Cores | 1 |
| Storage | 10 GB SSD |
| Architectures | amd64, arm64 |
Security Note:
It is a good security practice to restrict inbound ssh access (port 22/tcp) to your own computer's public IP address. You can check your current public IP address using ifconfig.me.
If you use a service like Tailscale, then you should close port 22/tcp.
Open your cloud firewall for HTTP and HTTPS
One of the most common sources of misconfiguration is not opening firewall ports correctly. Please be sure to double check this step.
In your cloud provider's console, the following ports should be open to inbound access from the public internet.
- 80/tcp (Used only for TLS certification verification)
- 443/tcp (Used for all application requests)
Note: there is no need to set up TLS or redirect requests from port 80 to 443 because the Caddy web server, included in the Docker compose file generated by the installer, will handle this for you.
Configure DNS for your domain
From your DNS provider's control panel, set up a domain with records pointing to your server.
| Name | Type | Value | TTL |
|---|---|---|---|
example.com | A | 12.34.56.78 | 600 |
The exact values to use will be printed on screen at the end of the automated installer.
Automated Installation
To install the FediMod FIRES reference server implementation on a debian or ubuntu server, with automatic updates, you can use the installer script:
curl https://raw.githubusercontent.com/fedimod/fires/main/components/fires-server/dist/installer.sh > installer.sh
sudo bash installer.shThis installer will automatically setup Docker, configure the firewall, setup a TLS certificate with LetsEncrypt (using Caddy), and help you configure the FIRES server. An administrative user will automatically be provisioned.
All that you need to do is configure the A record for DNS, and ensure your server provider'sfirewall is configured correctly.
Running commands in the container
To run the various management commands for the fires-server container, you can run them by connecting to the container:
docker exec -it $(docker ps -f "name=fires-server" --format "{{.ID}}") /bin/shSee the the reference server's README for a list of available commands.
Software Updates
The automated installer will configure watchtower for automatically updating the fires-server and caddy containers. The postgresql container requires manual updates.
Backups
You can setup backups for the postgresql container using tools like:
- Barman
- PGBackRest
- Or similar such tools.