If your application writes configuration, session, or user data to the file system and you want this data to persist across restarts you will need a fly volume. This doesn’t apply if your data is stored in a database elsewhere (for example in PostgreSQL, MySQL, or MongoDB), but does apply if you are using Sqlite3.
Use fly volumes create to create a volume. You can specify a region and a size (in gigabytes). Create one for each machine that you will be deploying as volumes can’t be shared between machines. You will want to use the same volume name for each volume if these volumes will be mounted by separate instances of the same application.
When you created a volume, you gave it a name. Modify your
fly.toml to contain
a mounts section
associating that source name with a destination file path:
[mounts] source = "myapp_data" destination = "/data" processes= ["app"]
processes section is optional if you only have one process defined in your toml.
Modify your application to read and write from subdirectories of the destination path you
provided in your
In the case of Sqlite3, set the
DATABASE_URL value to include this path.