From 8ce6317844fcbf398213f3f878d659039b545304 Mon Sep 17 00:00:00 2001 From: Dziad Borowy Date: Mon, 10 Mar 2025 21:27:18 +0000 Subject: [PATCH] n8n & rocketchat --- README.md | 6 ++- apps/home-automation/n8n.md | 100 ++++++++++++++++++++++++++++++++++++ apps/social/rocketchat.md | 51 ++++++++++++++++++ 3 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 apps/home-automation/n8n.md create mode 100644 apps/social/rocketchat.md diff --git a/README.md b/README.md index 2001125..fc0495f 100644 --- a/README.md +++ b/README.md @@ -210,6 +210,9 @@ The aims is to provide a ready-to-run recipes that you can just copy, paste and # Home Automation - [HomeAssistant](apps/home-automation/home-assistant.md) - [Homebridge](apps/home-automation/homebridge.md) +- [n8n](apps/home-automation/n8n.md) - excellent automation platform. + +### Other (not tested) - [Beehive](https://github.com/muesli/beehive) 🔗 - flexible event/agent & automation system - [Huginn](https://github.com/huginn/huginn) 🔗 - Create agents that monitor and act on your behalf. - [Node-RED](https://nodered.org/) 🔗 - Low-code programming for event-driven applications @@ -387,10 +390,11 @@ The aims is to provide a ready-to-run recipes that you can just copy, paste and - [Monica](apps/social/monica.md) - [Mastodon](apps/social/mastodon.md) - [Mattermost](apps/social/mattermost.md) +- [RocketChat](apps/social/rocketchat.md) + ### Other untested - [HumHub](https://www.humhub.com/en) 🔗 - Free social network software and framework. -- [RocketChat](https://docs.rocket.chat/installation/docker-containers/) 🔗 - The Ultimate Communication Hub. - [Snikket](https://snikket.org/) 🔗 - Chat that is simple, secure, and private. - [Jami](https://jami.net/) 🔗 - Audio & video calls, screen sharing, IM. diff --git a/apps/home-automation/n8n.md b/apps/home-automation/n8n.md new file mode 100644 index 0000000..5b70022 --- /dev/null +++ b/apps/home-automation/n8n.md @@ -0,0 +1,100 @@ +# n8n + +n8n is a free and open node-based Workflow Automation Tool. It can be self-hosted, easily extended, and so also used with internal tools. + +--- + +- [Homepage](https://n8n.io/) +- [Github repo](https://github.com/n8n-io/n8n) +- [Docs](https://docs.n8n.io/) + + +## Setup +Create 1 folder and 3 files in the same directory: +- storage/ +- .env +- init-data.sh +- docker-compose.yml + +```sh +touch .env init-data.sh docker-compose.yml +mkdir storage + +chmod +x init-data.sh # make the init-data.sh executable +chmod 777 storage # make sure the storage folder is writable +``` + + + +## .env +```conf +POSTGRES_USER=n8n +POSTGRES_PASSWORD=n8n +POSTGRES_DB=n8n + +POSTGRES_NON_ROOT_USER=n7n +POSTGRES_NON_ROOT_PASSWORD=n7n +``` + + +## init-data.sh +```sh +#!/bin/bash +set -e; + +if [ -n "${POSTGRES_NON_ROOT_USER:-}" ] && [ -n "${POSTGRES_NON_ROOT_PASSWORD:-}" ]; then + psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL + CREATE USER ${POSTGRES_NON_ROOT_USER} WITH PASSWORD '${POSTGRES_NON_ROOT_PASSWORD}'; + GRANT ALL PRIVILEGES ON DATABASE ${POSTGRES_DB} TO ${POSTGRES_NON_ROOT_USER}; + GRANT CREATE ON SCHEMA public TO ${POSTGRES_NON_ROOT_USER}; + EOSQL +else + echo "SETUP INFO: No Environment variables given!" +fi +``` + + +## docker-compose.yml +```yml +--- +services: + postgres: + image: postgres:16 + restart: unless-stopped + environment: + - POSTGRES_USER + - POSTGRES_PASSWORD + - POSTGRES_DB + - POSTGRES_NON_ROOT_USER + - POSTGRES_NON_ROOT_PASSWORD + healthcheck: + test: ['CMD-SHELL', 'pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}'] + interval: 5s + timeout: 5s + retries: 10 + volumes: + - ./db:/var/lib/postgresql/data + - ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh + + n8n: + image: docker.n8n.io/n8nio/n8n + restart: unless-stopped + 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} + - N8N_EDITOR_BASE_URL=http://localhost:5678/ + #- N8N_SECURE_COOKIE=false + links: + - postgres + depends_on: + postgres: + condition: service_healthy + ports: + - 5678:5678 + volumes: + - ./storage:/home/node/.n8n +``` diff --git a/apps/social/rocketchat.md b/apps/social/rocketchat.md new file mode 100644 index 0000000..0dd83e7 --- /dev/null +++ b/apps/social/rocketchat.md @@ -0,0 +1,51 @@ +# RocketChat + +The Ultimate Communication Hub. A solid option for self-hosted chat and collaboration. + +- [Homepage](https://www.rocket.chat) +- [Documentation](https://docs.rocket.chat/docs/deploy-with-docker-docker-compose) +- [Github repo](https://github.com/rocketchat/) + + + +
+ + +## docker-compose.yml +```yml +--- +services: + mongodb: + # https://hub.docker.com/r/bitnami/mongodb + image: docker.io/bitnami/mongodb:8.0.5 + restart: unless-stopped + volumes: + - ./data:/bitnami/mongodb + environment: + MONGODB_REPLICA_SET_MODE: primary + MONGODB_REPLICA_SET_NAME: rs0 + MONGODB_PORT_NUMBER: 27017 + MONGODB_INITIAL_PRIMARY_HOST: mongodb + MONGODB_INITIAL_PRIMARY_PORT_NUMBER: 27017 + MONGODB_ADVERTISED_HOSTNAME: mongodb + MONGODB_ENABLE_JOURNAL: true + ALLOW_EMPTY_PASSWORD: yes + + + rocketchat: + # https://github.com/RocketChat/Rocket.Chat/releases + image: registry.rocket.chat/rocketchat/rocket.chat:7.4.0 + restart: unless-stopped + environment: + MONGO_URL: "mongodb://mongodb:27017/rocketchat?replicaSet=rs0" + MONGO_OPLOG_URL: "mongodb://mongodb:27017/local?replicaSet=rs0" + ROOT_URL: http://localhost:3123 + PORT: 3000 + DEPLOY_METHOD: docker + depends_on: + - mongodb + expose: + - 3000 + ports: + - 3123:3000 +```