This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
You should deploy your server so it's always running. Fly.io provides an easy
option with a free plan.
See the next section for a brief comparison of fly.io deployment options. If you're stuck or find a
step unclear, the community in Discord may be able to assist you.
Deployment methods
Fly offers a variety of ways to get an application deployed on their infrastructure. We currently
have community contributed documentation for the following deplyment methods
Deploying from a clone of the main git repository (link)
The git approach allows users a high degree of control. With sufficient knowledge, you can target
the current release, work in progress, or a fork (a unique code history that uses Actual as its
starting point). You can make fine grained changes to any aspect of your Actual server instance.
However, some users will find that this level of control adds complexity to their deployment. As
your deployment is based on your local copy of the source code, you will be responsible for keeping
track of updates and ensuring your local copy is up to date.
The container image approach offers less granular control. Images are intended to be a specific
version of the application, identical everywhere that image is deployed. While there are some
deployment parameters you can alter, you'll only have access to configuration that the current
version of the application makes available. In return for surrendering source code level access, you
get relative simplicity. The image includes everything the application needs, and thus none of that
tooling needs to be installed on your machine. New versions of the image are built by the main
repository¹; if you opt to deploy the :latest tag, you can be confident you're up
to date with the latest full release.
As a (terrible) analogy, the git approach provides you a car with no restrictions. If you decide the
engine should be tuned differently, you can open the hood and go to work with your wrench. The image
approach also provides you a car, but the engine bay is sealed. If you want different cylinder
timing, you'll need a new image.
Q.I have deployed actual to Fly.io but I am being charged, why is this?
A. While we wouldn’t know for certain without seeing your configuration, it is likely that during
deployment you created a Postgres database. Actual doesn’t need this so you can just delete it and
charges should then stop. If you're unsure, the community in Discord
may be able to assist you.