Added listmonk

This commit is contained in:
ManUtopiK 2022-10-29 18:32:53 +02:00
parent 6c8f25623e
commit 231e80cc81
7 changed files with 90 additions and 7 deletions

View File

@ -5,6 +5,8 @@ A preconfigured docker compose with awesome open source tool :
- a postgresql database with pgadmin
- **hasura** : provide a graphql api on postgresql database and all services listed above
- **n8n** : an automation tools
- **umami** : open source analytics
- **listmonk** : newsletters management
## Configuring pgAdmin
@ -13,11 +15,16 @@ A preconfigured docker compose with awesome open source tool :
## Used ports
- pgadmin : `5050`
- hasura : `8080`
- pgadmin : 5050
- hasura : 8080
- n8n : 5678
- umami : 3333
- listmonk : 9000
## Hasura console
Doc : https://hasura.io/docs
Launch console from local :
hasura console --admin-secret $ADMIN_PASSWORD
@ -25,3 +32,21 @@ Launch console from local :
hausar console --no-browser --admin-secret $ADMIN_PASSWORD
Alternatively, you can uncomment `admin_secret` in file `hasura/config.yaml` and set your password.
## n8n
Doc : https://docs.n8n.io
## Umami
Doc : https://umami.is/docs
Default administrator account username `admin` and the password `umami`.
## Listmonk
Doc : https://listmonk.app/docs
After launched `docker compose up -d`, at the first install we need to populate the database :
docker-compose run --rm listmonk ./listmonk --install

View File

@ -0,0 +1,28 @@
[app]
# Interface and port where the app will run its webserver. The default value
# of localhost will only listen to connections from the current machine. To
# listen on all interfaces use '0.0.0.0'. To listen on the default web address
# port, use port 80 (this will require running with elevated permissions).
address = "0.0.0.0:9000"
# BasicAuth authentication for the admin dashboard. This will eventually
# be replaced with a better multi-user, role-based authentication system.
# IMPORTANT: Leave both values empty to disable authentication on admin
# only where an external authentication is already setup.
admin_username = "listmonk"
admin_password = "listmonk"
# Database.
[db]
host = "postgres"
port = 5432
user = "adminuser"
password = "rootpassword"
# Ensure that this database has been created in Postgres.
database = "listmonk"
ssl_mode = "disable"
max_open = 25
max_idle = 25
max_lifetime = "300s"

View File

@ -0,0 +1,15 @@
services:
listmonk:
container_name: $APP_NAME-listmonk
image: listmonk/listmonk:latest
restart: always
ports:
- 9000:9000
depends_on:
postgres:
condition: service_healthy
volumes:
- ./config.toml:/listmonk/config.toml
environment:
- TZ=$GENERIC_TIMEZONE
command: /bin/sh -c "./listmonk --install --idempotent --yes && ./listmonk --upgrade --yes && ./listmonk"

View File

@ -17,21 +17,30 @@ else
echo "SETUP INFO: No Environment variables given!"
fi
# Create n8n table
# Create n8n database
if [ -n "$N8N_DB" ] && [ -n "${POSTGRES_NON_ROOT_USER:-}" ] && [ -n "${POSTGRES_NON_ROOT_PASSWORD:-}" ]; then
# echo $N8N_SCHEMA $POSTGRES_USER $POSTGRES_NON_ROOT_USER;
psql -v ON_ERROR_STOP=1 -U "$POSTGRES_USER" -d "$POSTGRES_DB" <<-EOSQL
CREATE DATABASE ${N8N_DB:-n8n};
GRANT ALL PRIVILEGES ON DATABASE ${N8N_DB:-n8n} TO $POSTGRES_NON_ROOT_USER;
EOSQL
echo "SETUP n8n database: $N8N_DB"
echo "CREATE $N8N_DB database"
fi
# Create umami table
# Create umami database
if [ -n "$UMAMI_DB" ] && [ -n "${POSTGRES_NON_ROOT_USER:-}" ] && [ -n "${POSTGRES_NON_ROOT_PASSWORD:-}" ]; then
psql -v ON_ERROR_STOP=1 -U "$POSTGRES_USER" -d "$POSTGRES_DB" <<-EOSQL
CREATE DATABASE ${UMAMI_DB};
GRANT ALL PRIVILEGES ON DATABASE ${UMAMI_DB} TO $POSTGRES_NON_ROOT_USER;
EOSQL
echo "SETUP umami database: $UMAMI_DB"
echo "CREATE $UMAMI_DB database"
fi
# Create listmonk database
if [ -n "$LISTMONK_DB" ] && [ -n "${POSTGRES_NON_ROOT_USER:-}" ] && [ -n "${POSTGRES_NON_ROOT_PASSWORD:-}" ]; then
psql -v ON_ERROR_STOP=1 -U "$POSTGRES_USER" -d "$POSTGRES_DB" <<-EOSQL
CREATE DATABASE ${LISTMONK_DB};
GRANT ALL PRIVILEGES ON DATABASE ${LISTMONK_DB} TO $POSTGRES_NON_ROOT_USER;
EOSQL
echo "CREATE $LISTMONK_DB database"
fi

View File

@ -13,6 +13,7 @@ services:
- POSTGRES_NON_ROOT_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD:-$POSTGRES_PASSWORD}
- N8N_DB
- UMAMI_DB
- LISTMONK_DB
volumes:
- postgres_storage:/var/lib/postgresql/data
- ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh

View File

@ -2,7 +2,7 @@ services:
umami:
image: ghcr.io/umami-software/umami:postgresql-latest
ports:
- 3000:3000
- 3333:3000
environment:
DATABASE_URL: postgres://${POSTGRES_NON_ROOT_USER:-$ADMIN_USER}:${POSTGRES_NON_ROOT_PASSWORD:-$POSTGRES_PASSWORD}@postgres:5432/${UMAMI_DB:-umami}
DATABASE_TYPE: postgresql

View File

@ -37,6 +37,11 @@ services:
file: composes/umami/umami.yml
service: umami
listmonk:
extends:
file: composes/listmonk/listmonk.yml
service: listmonk
volumes:
postgres_storage:
redis_storage: