Fluent Manager Database Self Hosting
Hosting the database seperately without using the provided container image may be desirable as some users will want a database hosting solution with robust high availability features and automatic backups provided by AWS and Azure. This can be done easily by just making some changes during the deployment process.
Setting up your database
Your database must be PostgreSQL. We recomend using either "AWS RDS for PostgreSQL" or "Azure Database for PostgreSQL flexible server".
Once you've created your server you just need to make sure it has a database named fluent
with a schema named manager
. The Fluent Manager application will handle creating all of the necessary tables in this schema once it's connected.
You'll need to make sure you've created a user with full CRUD permissions on this database and schema. This is the user the Manager application will be using to connect to the database.
Configuring Manager to use your new database
Start out by following steps 1, 2, and 3 of our standard deployment process using docker compose. Once you've completed step 3 you'll need to make some changes to the generated .env
and docker-compose.yml
files.
In .env
update the following values:
FLUENT_MANAGER_DATABASE_URL={the host name or ip address for your PostgreSQL database}
FLUENT_MANAGER_DATABASE_PASSWORD={the password for the user you're using to connect to the PostgreSQL database}
FLUENT_MANAGER_DATABASE_USERNAME={the user you're using the connect to the PostgreSQL database}
POSTGRES_PASSWORD={the password for the user you're using to connect to the PostgreSQL database}
POSTGRES_USER={the user you're using the connect to the PostgreSQL database}
In docker-compose.yml
you can make the following deletions:
- Delete the
db
section of `services. It looks something like this:
db:
container_name: fluent-manager-db-manager-x.y.z-prod-release
restart: always
image: public.ecr.aws/apryse/fluent-manager-db:x.y.z
volumes: ['fluent-manager-db-manager-25.2.0.4-prod-release:/var/lib/postgresql/data']
env_file: .env
logging:
driver: json-file
options: {max-size: 50m, max-file: '3'}
- Delete the volumes section that sets up the volume mount for the db contaienr. It looks something like this:
volumes:
fluent-manager-db-manager-25.2.0.4-prod-release: {name: fluent-manager-db-manager-25.2.0.4-prod-release}
- Delete the
depends_on
reference that the backend container has to the db container. It looks something like this:
depends_on: [db]
Once you've made these changes you can contineu with the standard deployment process using docker compose