| description | These steps will run you through setting up the application using Docker and Docker Compose. |
|---|
Setting up your environment with Docker Compose is the recommended infrastructure pattern as it'll setup the application and a database for you.
{% tabs %} {% tab title="Docker (MariaDB/MySQL)" %}
version: '3.3'
services:
speedtest-tracker:
container_name: speedtest-tracker
ports:
- '8080:80'
- '8443:443'
environment:
- PUID=1000
- PGID=1000
- DB_CONNECTION=mysql
- DB_HOST=db
- DB_PORT=3306
- DB_DATABASE=speedtest_tracker
- DB_USERNAME=speedy
- DB_PASSWORD=password
- TZ=America/Chicago
volumes:
- '/etc/localtime:/etc/localtime:ro'
- '/path/to/directory:/config'
- '/path/to/directory/web:/etc/ssl/web'
image: 'ghcr.io/alexjustesen/speedtest-tracker:latest'
restart: unless-stopped
depends_on:
- db
db:
image: mariadb:10
restart: always
environment:
- MARIADB_DATABASE=speedtest_tracker
- MARIADB_USER=speedy
- MARIADB_PASSWORD=password
- MARIADB_RANDOM_ROOT_PASSWORD=true
volumes:
- speedtest-db:/var/lib/mysql
volumes:
speedtest-db:{% endtab %}
{% tab title="Docker (PostgreSQL)" %}
version: '3.3'
services:
speedtest-tracker:
container_name: speedtest-tracker
ports:
- '8080:80'
- '8443:443'
environment:
- PUID=1000
- PGID=1000
- DB_CONNECTION=pgsql
- DB_HOST=db
- DB_PORT=5432
- DB_DATABASE=speedtest_tracker
- DB_USERNAME=speedy
- DB_PASSWORD=password
- TZ=America/Chicago
volumes:
- '/etc/localtime:/etc/localtime:ro'
- '/path/to/directory:/config'
- '/path/to/directory/web:/etc/ssl/web'
image: 'ghcr.io/alexjustesen/speedtest-tracker:latest'
restart: unless-stopped
depends_on:
- db
db:
image: postgres:15
restart: always
environment:
- POSTGRES_DB=speedtest_tracker
- POSTGRES_USER=speedy
- POSTGRES_PASSWORD=password
volumes:
- speedtest-db:/var/lib/postgresql/data
volumes:
speedtest-db:{% endtab %} {% endtabs %}
{% hint style="info" %} These instructions assume you have an appropriate database instance that already exists. {% endhint %}
{% tabs %} {% tab title="Docker (MariaDB/MySQL)" %}
docker run -d --name speedtest-tracker --restart unless-stopped \
-p 8080:80 \
-p 8443:443 \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=America/Chicago \
-e DB_CONNECTION=mysql \
-e DB_HOST= \
-e DB_PORT=3306 \
-e DB_DATABASE=speedtest_tracker \
-e DB_USERNAME= \
-e DB_PASSWORD= \
-v /etc/localtime:/etc/localtime:ro \
-v /path/to/directory:/config \
-v /path/to/directory/web:/etc/ssl/web \
ghcr.io/alexjustesen/speedtest-tracker:latest{% endtab %}
{% tab title="Docker (PostgreSQL)" %}
docker run -d --name speedtest-tracker --restart unless-stopped \
-p 8080:80 \
-p 8443:443 \
-e PUID=1000 \
-e PGID=1000 \
-e DB_CONNECTION=pgsql \
-e DB_HOST= \
-e DB_PORT=5432 \
-e DB_DATABASE=speedtest_tracker \
-e DB_USERNAME= \
-e DB_PASSWORD= \
-e TZ=America/Chicago \
-v /etc/localtime:/etc/localtime:ro \
-v /path/to/directory:/config \
-v /path/to/directory/web:/etc/ssl/web \
ghcr.io/alexjustesen/speedtest-tracker:latest{% endtab %} {% endtabs %}