Official bootstrap for running your own Dispatch
with Docker.
To get started with all the defaults, simply clone the repo and run ./install.sh
in your local check-out.
There may need to be modifications to the included example config files (.env
) to accommodate your needs or your environment (such as adding Google credentials). If you want to perform these, do them before you run the install script and copy them without the .example
extensions in the name before running the install.sh
script.
By default Dispatch does not come with any data. If you're looking for some example data, please use the postgres dump file located here to load example data.
Note: when running the install.sh
file, you will be asked whether to load this database dump, or to initialize a new database.
If you decide to start with a clean database, you will need a user. To create a user, go to http://localhost:8000/default/auth/register.
If you'd like to protect your Dispatch install with SSL/TLS, there are
fantastic SSL/TLS proxies like HAProxy
and Nginx. You'll likely want to add this service to your docker-compose.yml
file.
The included install.sh
script is meant to be idempotent and to bring you to the latest version. What this means is you can and should run install.sh
to upgrade to the latest version available.
If you are using an earlier version of postgres
you may need to run manual steps to upgrade to the newest Postgres image.
This assumes that you have not changed the default Postgres data path (/var/lib/postgresql/data
) in your docker-compose.yml
.
If you have changed it, please replace all occurences of /var/lib/postgresql/data
with your path.
docker stop
and not docker-compose stop
).docker run -d \
--name postgresnew \
-e POSTGRES_DB=dispatch \
-e POSTGRES_USER=dispatch \
-e POSTGRES_PASSWORD=dispatch \
-v /var/lib/postgresql/new:/var/lib/postgresql/data:rw \
postgres:latest
pg_dumpall
to dump all data from the existing Postgres container to the new Postgres container (replace DISPATCH_DATABASE_CONTAINER_NAME
(default is postgres
) with the name of the old Postgres container):
docker exec \
DISPATCH_DATABASE_CONTAINER_NAME pg_dumpall -U postgres | \
docker exec -i postgresnew psql -U postgres
docker stop DISPATCH_DATABASE_CONTAINER_NAME postgresnew
docker rm DISPATCH_DATABASE_CONTAINER_NAME postgresnew
docker-compose.yml
to use the postgres:latest
image for the database
container.mv /var/lib/postgresql/data /var/lib/postgresql/old
mv /var/lib/postgresql/new /var/lib/postgresql/data
docker-compose rm
docker-compose up
That should be it. Your Postgres data has now been updated to use the postgres
image.