docker w/ postgres, but really up to you. Either would be fine.
Self-Hosted Main
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
For Example
- Service: Dropbox - Alternative: Nextcloud
- Service: Google Reader - Alternative: Tiny Tiny RSS
- Service: Blogger - Alternative: WordPress
We welcome posts that include suggestions for good self-hosted alternatives to popular online services, how they are better, or how they give back control of your data. Also include hints and tips for less technical readers.
Useful Lists
- Awesome-Selfhosted List of Software
- Awesome-Sysadmin List of Software
aa ok thanks
It's mostly just preference. If you are already familiar with MySQL or Postgres, use what you know. If you just want simple and lightweight, use it with SQLite (no external database).
I will create a lxc conteiner in my proxmox just for him so my question would be... which one would be more secure that it will not have problems in the future? for example that it is slower or easier to be damaged or lose information or that it lacks some feature, do you know what I mean?
Use SQLite. Easy to backup, no process taking up cpu/memory, no users to manage.
Cloudron (free tier - 2 apps). Get a server, install Cloudron, install n8n from the app store. Done.
If you design an application, choosing database would be a big deal, but since you are the user, you can choose whatever you want. My go to is postgre though.
I will create a lxc conteiner in my proxmox just for him so my question would be... which one would be more secure that it will not have problems in the future? for example that it is slower or easier to be damaged or lose information or that it lacks some feature, do you know what I mean? but ok i wil go with a database thanks!
ok... I couldn't install docker with postgres so I did it with sql and that's it I hope I don't miss out in the future because I will have to look for someone to help me install it thanks friends
thanks I will go for postgres database because of what I have been advised and additionally because I have been told that soon n8n will remove mysql/mariadb support.
Please, I'm struggling with the docker-compose with postgres to get my n8n up and running... so just copy the docker-compose from the doc and made changes for my needs, could you tell me if im doin it rigth? or should I change something?
i want all data in: /docker/n8n/
so
root@13-n8n-RL23-WG /docker/n8n# nano .env
POSTGRES_USER=user-root
POSTGRES_PASSWORD=password-root
POSTGRES_DB=n8n
POSTGRES_NON_ROOT_USER=user-nonroot
POSTGRES_NON_ROOT_PASSWORD=password-nonroot
root@13-n8n-RL23-WG /docker/n8n# nano docker-compose.yml
version: '3.8'
volumes:
db_storage:
n8n_storage:
services:
postgres:
image: postgres:11
restart: always
environment:
- POSTGRES_USER
- POSTGRES_PASSWORD
- POSTGRES_DB
- POSTGRES_NON_ROOT_USER
- POSTGRES_NON_ROOT_PASSWORD
volumes:
- /docker/n8n/postgresql/data:/var/lib/postgresql/data
- ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh
healthcheck:
test: ['CMD-SHELL', 'pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}']
interval: 5s
timeout: 5s
retries: 10
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
- DB_POSTGRESDB_USER=${POSTGRES_NON_ROOT_USER}
- DB_POSTGRESDB_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD}
- WEBHOOK_URL=https://subdomain.wtf.org/
- EXECUTIONS_PROCESS=main
- GENERIC_TIMEZONE=America/La_Paz
- TZ=America/La_Paz
ports:
- 5678:5678
links:
- postgres
volumes:
- /docker/n8n:/home/node/.n8n
depends_on:
postgres:
condition: service_healthy
And so it begins ^^
I wouldn't know if someone can help me.
I have this has my Portainer Stack and all the variables configuration in the environment variables but while container works fine when first access, it reset when I edit the container or update and I have to create a new login.
I discovered recently that while other containers works fine, the worker container wouldn't.
I'm new to docker and container and would appreciate help
This my docker-compose file
version: '3.8'
volumes:
db_storage:
n8n_storage:
redis_storage:
x-shared: &shared
restart: always
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
- DB_POSTGRESDB_USER=${POSTGRES_NON_ROOT_USER}
- DB_POSTGRESDB_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD}
- EXECUTIONS_MODE=queue
- QUEUE_BULL_REDIS_HOST=redis
- QUEUE_HEALTH_CHECK_ACTIVE=true
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER
- N8N_BASIC_AUTH_PASSWORD
links:
- postgres
- redis
volumes:
- n8n_storage:/home/node/
depends_on:
redis:
condition: service_healthy
postgres:
condition: service_healthy
services:
postgres:
image: postgres:11
restart: always
environment:
- POSTGRES_USER
- POSTGRES_PASSWORD
- POSTGRES_DB
- POSTGRES_NON_ROOT_USER
- POSTGRES_NON_ROOT_PASSWORD
volumes:
- db_storage:/var/lib/postgresql/data
- ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh
healthcheck:
test: ["CMD-SHELL", "pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
interval: 5s
timeout: 5s
retries: 10
redis:
image: redis:6-alpine
restart: always
volumes:
- redis_storage:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 5s
retries: 10
n8n:
<<: *shared
image: n8nio/n8n
command: /bin/sh -c "n8n start --tunnel"
ports:
- 5678:5678
n8n-worker:
<<: *shared
image: n8nio/n8n
command: /bin/sh -c "sleep 5; n8n worker"
depends_on:
- n8n