diff --git a/README.md b/README.md index 01fe6059..3c706ab2 100644 --- a/README.md +++ b/README.md @@ -47,17 +47,20 @@ volumes: ``` 3. Add the `template.toml` file to the folder, this is where we specify the domains, mounts and env variables, to understand more the structure of `template.toml` you can read here [Template.toml structure](#template.toml-structure) -```yaml -variables: - main_domain: ${domain} +```toml +[variables] +main_domain = "${domain}" -config: - domains: - - serviceName: grafana - port: 3000 - host: ${main_domain} - env: [] - mounts: [] +[config] +[[config.domains]] +serviceName = "grafana" +port = 3000 +host = "${main_domain}" + + +[[config.env]] + +[[config.mounts]] ``` 4. Add meta information to the `meta.json` file in the root folder diff --git a/blueprints/ackee/docker-compose.yml b/blueprints/ackee/docker-compose.yml new file mode 100644 index 00000000..5f26fbfa --- /dev/null +++ b/blueprints/ackee/docker-compose.yml @@ -0,0 +1,23 @@ +version: "3" + +services: + ackee: + image: electerious/ackee:3.4.2 + ports: + - "3000" + environment: + - ACKEE_USERNAME=${ACKEE_USERNAME} + - ACKEE_PASSWORD=${ACKEE_PASSWORD} + - ACKEE_MONGODB=${ACKEE_MONGODB} + + mongo: + image: mongo:4 + environment: + - MONGO_INITDB_ROOT_PASSWORD=${MONGO_INITDB_ROOT_PASSWORD} + volumes: + - mongo-data:/data/db + + +volumes: + mongo-data: + diff --git a/blueprints/ackee/logo.png b/blueprints/ackee/logo.png new file mode 100644 index 00000000..91716f40 Binary files /dev/null and b/blueprints/ackee/logo.png differ diff --git a/blueprints/ackee/template.toml b/blueprints/ackee/template.toml new file mode 100644 index 00000000..ebffa3e2 --- /dev/null +++ b/blueprints/ackee/template.toml @@ -0,0 +1,18 @@ +[variables] +ACKEE_USERNAME = "default" +ACKEE_PASSWORD = "${password:16}" +MONGO_INITDB_ROOT_PASSWORD = "${password:16}" +ACKEE_MONGODB = "mongodb://mongo:${MONGO_INITDB_ROOT_PASSWORD}@mongo:27017" + +[config] +[[config.domains]] +serviceName = "ackee" +port = 3000 +host = "${domain}" + +[config.env] +ACKEE_USERNAME = "${ACKEE_USERNAME}" +ACKEE_PASSWORD = "${ACKEE_PASSWORD}" +ACKEE_MONGODB = "${ACKEE_MONGODB}" +MONGO_INITDB_ROOT_PASSWORD = "${MONGO_INITDB_ROOT_PASSWORD}" + diff --git a/blueprints/adguardhome/docker-compose.yml b/blueprints/adguardhome/docker-compose.yml new file mode 100644 index 00000000..a27c8285 --- /dev/null +++ b/blueprints/adguardhome/docker-compose.yml @@ -0,0 +1,21 @@ +version: "3.8" +services: + adguardhome: + image: adguard/adguardhome:latest + restart: unless-stopped + ports: + - "53:53/tcp" + - "53:53/udp" + - "784:784/udp" + - "853:853/tcp" + - "853:853/udp" + - "8853:8853/udp" + - "5443:5443/tcp" + - "5443:5443/udp" + volumes: + - adguardhome-work:/opt/adguardhome/work + - adguardhome-conf:/opt/adguardhome/conf + +volumes: + adguardhome-work: {} + adguardhome-conf: {} \ No newline at end of file diff --git a/blueprints/adguardhome/logo.svg b/blueprints/adguardhome/logo.svg new file mode 100644 index 00000000..06dd3fdd --- /dev/null +++ b/blueprints/adguardhome/logo.svg @@ -0,0 +1,20 @@ + + + + logo@2x + Created with Sketch. + + \ No newline at end of file diff --git a/blueprints/adguardhome/template.toml b/blueprints/adguardhome/template.toml new file mode 100644 index 00000000..ed82b374 --- /dev/null +++ b/blueprints/adguardhome/template.toml @@ -0,0 +1,12 @@ +[variables] +main_domain = "${domain}" + +[config] +env = [] +mounts = [] + +[[config.domains]] +serviceName = "adguardhome" +port = 3000 +host = "${main_domain}" + diff --git a/blueprints/adminer/docker-compose.yml b/blueprints/adminer/docker-compose.yml new file mode 100644 index 00000000..29d7c270 --- /dev/null +++ b/blueprints/adminer/docker-compose.yml @@ -0,0 +1,7 @@ +version: "3.8" +services: + adminer: + image: adminer:4.8.1 + restart: unless-stopped + ports: + - 8080 \ No newline at end of file diff --git a/blueprints/adminer/logo.svg b/blueprints/adminer/logo.svg new file mode 100644 index 00000000..ff165bb6 --- /dev/null +++ b/blueprints/adminer/logo.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + diff --git a/blueprints/adminer/template.toml b/blueprints/adminer/template.toml new file mode 100644 index 00000000..b0df0e13 --- /dev/null +++ b/blueprints/adminer/template.toml @@ -0,0 +1,8 @@ +[variables] +main_domain = "${domain}" + +[config] +[[config.domains]] +serviceName = "adminer" +port = 8080 +host = "${main_domain}" \ No newline at end of file diff --git a/blueprints/affinepro/docker-compose.yml b/blueprints/affinepro/docker-compose.yml new file mode 100644 index 00000000..93fa9da4 --- /dev/null +++ b/blueprints/affinepro/docker-compose.yml @@ -0,0 +1,65 @@ +version: "3.8" +services: + affinepro: + image: ghcr.io/toeverything/affine-graphql:stable-780dd83 + restart: unless-stopped + ports: + - 3010 + volumes: + - affine-storage:/root/.affine/storage + - affine-config:/root/.affine/config + environment: + - REDIS_SERVER_HOST=redis + - REDIS_SERVER_PASSWORD=${REDIS_PASSWORD} + - DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@db:5432/affinepro + - AFFINE_SERVER_HOST=${DOMAIN} + - MAILER_HOST=${MAILER_HOST} + - MAILER_PORT=${MAILER_PORT} + - MAILER_USER=${MAILER_USER} + - MAILER_PASSWORD=${MAILER_PASSWORD} + - MAILER_SENDER=${MAILER_SENDER} + depends_on: + - db + - redis + + migration: + image: ghcr.io/toeverything/affine-graphql:stable-780dd83 + command: node ./scripts/self-host-predeploy.js + environment: + - REDIS_SERVER_HOST=redis + - REDIS_SERVER_PASSWORD=${REDIS_PASSWORD} + - DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@db:5432/affinepro + - AFFINE_SERVER_HOST=${DOMAIN} + - MAILER_HOST=${MAILER_HOST} + - MAILER_PORT=${MAILER_PORT} + - MAILER_USER=${MAILER_USER} + - MAILER_PASSWORD=${MAILER_PASSWORD} + - MAILER_SENDER=${MAILER_SENDER} + volumes: + - affine-storage:/root/.affine/storage + - affine-config:/root/.affine/config + depends_on: + - db + - redis + + db: + image: postgres:15-alpine + restart: unless-stopped + environment: + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} + - POSTGRES_DB=affinepro + volumes: + - postgres-data:/var/lib/postgresql/data + + redis: + image: redis:7-alpine + restart: unless-stopped + command: redis-server --requirepass ${REDIS_PASSWORD} + volumes: + - redis-data:/data + +volumes: + affine-storage: {} + affine-config: {} + postgres-data: {} + redis-data: {} \ No newline at end of file diff --git a/blueprints/affinepro/logo.png b/blueprints/affinepro/logo.png new file mode 100644 index 00000000..c974fe28 Binary files /dev/null and b/blueprints/affinepro/logo.png differ diff --git a/blueprints/affinepro/template.toml b/blueprints/affinepro/template.toml new file mode 100644 index 00000000..9b5595ec --- /dev/null +++ b/blueprints/affinepro/template.toml @@ -0,0 +1,25 @@ +[variables] +main_domain = "${domain}" +postgres_password = "${password:16}" +redis_password = "${password:16}" +mailer_host = "" +mailer_port = "587" +mailer_user = "" +mailer_password = "" +mailer_sender = "" + +[config] +[[config.domains]] +serviceName = "affinepro" +port = 3010 +host = "${main_domain}" + +[config.env] +DOMAIN = "${main_domain}" +POSTGRES_PASSWORD = "${postgres_password}" +REDIS_PASSWORD = "${redis_password}" +MAILER_HOST = "${mailer_host}" +MAILER_PORT = "${mailer_port}" +MAILER_USER = "${mailer_user}" +MAILER_PASSWORD = "${mailer_password}" +MAILER_SENDER = "${mailer_sender}" \ No newline at end of file diff --git a/blueprints/alltube/docker-compose.yml b/blueprints/alltube/docker-compose.yml new file mode 100644 index 00000000..c04e5238 --- /dev/null +++ b/blueprints/alltube/docker-compose.yml @@ -0,0 +1,12 @@ +version: "3.8" +services: + alltube: + image: dnomd343/alltube:latest + restart: unless-stopped + ports: + - 80 + environment: + - TITLE=${TITLE} + - CONVERT=${CONVERT} + - STREAM=${STREAM} + - REMUX=${REMUX} \ No newline at end of file diff --git a/blueprints/alltube/logo.png b/blueprints/alltube/logo.png new file mode 100644 index 00000000..8f0d5cec Binary files /dev/null and b/blueprints/alltube/logo.png differ diff --git a/blueprints/alltube/template.toml b/blueprints/alltube/template.toml new file mode 100644 index 00000000..1c5f8eed --- /dev/null +++ b/blueprints/alltube/template.toml @@ -0,0 +1,18 @@ +[variables] +main_domain = "${domain}" +title = "My AllTube Site" +convert = "true" +stream = "true" +remux = "true" + +[config] +[[config.domains]] +serviceName = "alltube" +port = 80 +host = "${main_domain}" + +[config.env] +TITLE = "${title}" +CONVERT = "${convert}" +STREAM = "${stream}" +REMUX = "${remux}" \ No newline at end of file diff --git a/blueprints/ampache/docker-compose.yml b/blueprints/ampache/docker-compose.yml new file mode 100644 index 00000000..0af8f418 --- /dev/null +++ b/blueprints/ampache/docker-compose.yml @@ -0,0 +1,17 @@ +version: "3.8" +services: + ampache: + image: ampache/ampache:latest + restart: unless-stopped + ports: + - 80 + volumes: + - config:/var/www/config + - log:/var/log/ampache + - mysql:/var/lib/mysql + - ${MEDIA_PATH}:/media + +volumes: + config: {} + log: {} + mysql: {} \ No newline at end of file diff --git a/blueprints/ampache/logo.png b/blueprints/ampache/logo.png new file mode 100644 index 00000000..396846b7 Binary files /dev/null and b/blueprints/ampache/logo.png differ diff --git a/blueprints/ampache/template.toml b/blueprints/ampache/template.toml new file mode 100644 index 00000000..c80efaf5 --- /dev/null +++ b/blueprints/ampache/template.toml @@ -0,0 +1,12 @@ +[variables] +main_domain = "${domain}" +media_path = "/path/to/your/media" + +[config] +[[config.domains]] +serviceName = "ampache" +port = 80 +host = "${main_domain}" + +[config.env] +MEDIA_PATH = "${media_path}" \ No newline at end of file diff --git a/blueprints/anonupload/docker-compose.yml b/blueprints/anonupload/docker-compose.yml new file mode 100644 index 00000000..9d88e798 --- /dev/null +++ b/blueprints/anonupload/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.8" +services: + anonupload: + image: ghcr.io/supernova3339/anonfiles:1 + restart: unless-stopped + ports: + - 80 + environment: + - ADMIN_EMAIL=${ADMIN_EMAIL} + - ADMIN_PASSWORD=${ADMIN_PASSWORD} + - CONTACT_EMAIL=${CONTACT_EMAIL} + volumes: + - uploads:/var/www/html/uploads + +volumes: + uploads: {} \ No newline at end of file diff --git a/blueprints/anonupload/logo.png b/blueprints/anonupload/logo.png new file mode 100644 index 00000000..0ce265c5 Binary files /dev/null and b/blueprints/anonupload/logo.png differ diff --git a/blueprints/anonupload/template.toml b/blueprints/anonupload/template.toml new file mode 100644 index 00000000..7dcc9bce --- /dev/null +++ b/blueprints/anonupload/template.toml @@ -0,0 +1,16 @@ +[variables] +main_domain = "${domain}" +admin_email = "${email}" +admin_password = "${password:16}" +contact_email = "${email}" + +[config] +[[config.domains]] +serviceName = "anonupload" +port = 80 +host = "${main_domain}" + +[config.env] +ADMIN_EMAIL = "${admin_email}" +ADMIN_PASSWORD = "${admin_password}" +CONTACT_EMAIL = "${contact_email}" \ No newline at end of file diff --git a/blueprints/anythingllm/docker-compose.yml b/blueprints/anythingllm/docker-compose.yml new file mode 100644 index 00000000..248753a7 --- /dev/null +++ b/blueprints/anythingllm/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.8" +services: + anythingllm: + image: mintplexlabs/anythingllm:latest + restart: unless-stopped + ports: + - 3001 + environment: + - STORAGE_DIR=/app/server/storage + volumes: + - storage:/app/server/storage + cap_add: + - SYS_ADMIN + +volumes: + storage: {} \ No newline at end of file diff --git a/blueprints/anythingllm/logo.png b/blueprints/anythingllm/logo.png new file mode 100644 index 00000000..29603363 Binary files /dev/null and b/blueprints/anythingllm/logo.png differ diff --git a/blueprints/anythingllm/template.toml b/blueprints/anythingllm/template.toml new file mode 100644 index 00000000..d8800847 --- /dev/null +++ b/blueprints/anythingllm/template.toml @@ -0,0 +1,8 @@ +[variables] +main_domain = "${domain}" + +[config] +[[config.domains]] +serviceName = "anythingllm" +port = 3001 +host = "${main_domain}" \ No newline at end of file diff --git a/blueprints/apprise-api/docker-compose.yml b/blueprints/apprise-api/docker-compose.yml new file mode 100644 index 00000000..cc46a5e3 --- /dev/null +++ b/blueprints/apprise-api/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.8" +services: + apprise-api: + image: linuxserver/apprise-api:latest + restart: unless-stopped + ports: + - 8000 + environment: + - PUID=1000 + - PGID=1000 + - TZ=UTC + volumes: + - config:/config + +volumes: + config: {} \ No newline at end of file diff --git a/blueprints/apprise-api/logo.png b/blueprints/apprise-api/logo.png new file mode 100644 index 00000000..3099a00b Binary files /dev/null and b/blueprints/apprise-api/logo.png differ diff --git a/blueprints/apprise-api/template.toml b/blueprints/apprise-api/template.toml new file mode 100644 index 00000000..e38451d2 --- /dev/null +++ b/blueprints/apprise-api/template.toml @@ -0,0 +1,8 @@ +[variables] +main_domain = "${domain}" + +[config] +[[config.domains]] +serviceName = "apprise-api" +port = 8000 +host = "${main_domain}" \ No newline at end of file diff --git a/blueprints/arangodb/docker-compose.yml b/blueprints/arangodb/docker-compose.yml new file mode 100644 index 00000000..65301d16 --- /dev/null +++ b/blueprints/arangodb/docker-compose.yml @@ -0,0 +1,14 @@ +version: "3.8" +services: + arangodb: + image: arangodb:3.12.4 + restart: unless-stopped + ports: + - 8529 + environment: + - ARANGO_ROOT_PASSWORD=${ARANGO_PASSWORD} + volumes: + - data:/var/lib/arangodb3 + +volumes: + data: {} \ No newline at end of file diff --git a/blueprints/arangodb/logo.png b/blueprints/arangodb/logo.png new file mode 100644 index 00000000..8545487d Binary files /dev/null and b/blueprints/arangodb/logo.png differ diff --git a/blueprints/arangodb/template.toml b/blueprints/arangodb/template.toml new file mode 100644 index 00000000..74380f3c --- /dev/null +++ b/blueprints/arangodb/template.toml @@ -0,0 +1,12 @@ +[variables] +main_domain = "${domain}" +arango_password = "${password:16}" + +[config] +[[config.domains]] +serviceName = "arangodb" +port = 8529 +host = "${main_domain}" + +[config.env] +ARANGO_PASSWORD = "${arango_password}" \ No newline at end of file diff --git a/blueprints/argilla/docker-compose.yml b/blueprints/argilla/docker-compose.yml new file mode 100644 index 00000000..735350dc --- /dev/null +++ b/blueprints/argilla/docker-compose.yml @@ -0,0 +1,77 @@ +version: "3.8" +services: + argilla-web: + image: argilla/argilla-server:latest + restart: unless-stopped + ports: + - 6900 + environment: + - ARGILLA_HOME_PATH=/var/lib/argilla + - ARGILLA_ELASTICSEARCH=http://argilla-elasticsearch:9200 + - ARGILLA_DATABASE_URL=postgresql+asyncpg://postgres:${DB_PASSWORD}@argilla-db:5432/argilla + - ARGILLA_REDIS_URL=redis://:${REDIS_PASSWORD}@argilla-redis:6379/0 + - USERNAME=${LOGIN_USERNAME} + - PASSWORD=${LOGIN_PASSWORD} + - API_KEY=argilla.apikey + - WORKSPACE=default + volumes: + - argilladata:/var/lib/argilla + depends_on: + - argilla-elasticsearch + - argilla-db + - argilla-redis + + argilla-worker: + image: argilla/argilla-server:latest + restart: unless-stopped + environment: + - BACKGROUND_NUM_WORKERS=2 + - ARGILLA_HOME_PATH=/var/lib/argilla + - ARGILLA_ELASTICSEARCH=http://argilla-elasticsearch:9200 + - ARGILLA_DATABASE_URL=postgresql+asyncpg://postgres:${DB_PASSWORD}@argilla-db:5432/argilla + - ARGILLA_REDIS_URL=redis://:${REDIS_PASSWORD}@argilla-redis:6379/0 + volumes: + - argilladata:/var/lib/argilla + command: python -m argilla_server worker --num-workers ${BACKGROUND_NUM_WORKERS} + depends_on: + - argilla-elasticsearch + - argilla-db + - argilla-redis + + argilla-elasticsearch: + image: docker.elastic.co/elasticsearch/elasticsearch:8.12.2 + restart: unless-stopped + environment: + - node.name=elasticsearch + - cluster.name=es-argilla-local + - discovery.type=single-node + - ES_JAVA_OPTS=-Xms512m -Xmx512m + - cluster.routing.allocation.disk.threshold_enabled=false + - xpack.security.enabled=false + volumes: + - elasticdata:/usr/share/elasticsearch/data + + argilla-db: + image: postgres:15-alpine + restart: unless-stopped + environment: + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=${DB_PASSWORD} + - POSTGRES_DB=argilla + volumes: + - dbdata:/var/lib/postgresql/data + + argilla-redis: + image: redis:7-alpine + restart: unless-stopped + environment: + - REDIS_PASSWORD=${REDIS_PASSWORD} + command: redis-server --requirepass ${REDIS_PASSWORD} + volumes: + - redisdata:/data + +volumes: + argilladata: {} + elasticdata: {} + dbdata: {} + redisdata: {} \ No newline at end of file diff --git a/blueprints/argilla/logo.svg b/blueprints/argilla/logo.svg new file mode 100644 index 00000000..4a9bb044 --- /dev/null +++ b/blueprints/argilla/logo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/blueprints/argilla/template.toml b/blueprints/argilla/template.toml new file mode 100644 index 00000000..34baea4b --- /dev/null +++ b/blueprints/argilla/template.toml @@ -0,0 +1,19 @@ +[variables] +main_domain = "${domain}" +login_username = "${username}" +login_password = "${password:8}" +db_password = "${password:16}" +redis_password = "${password:16}" + +[config] +[[config.domains]] +serviceName = "argilla-web" +port = 6900 +host = "${main_domain}" + +[config.env] +LOGIN_USERNAME = "${login_username}" +LOGIN_PASSWORD = "${login_password}" +DB_PASSWORD = "${db_password}" +REDIS_PASSWORD = "${redis_password}" +BACKGROUND_NUM_WORKERS = "2" \ No newline at end of file diff --git a/blueprints/audiobookshelf/docker-compose.yml b/blueprints/audiobookshelf/docker-compose.yml new file mode 100644 index 00000000..821da761 --- /dev/null +++ b/blueprints/audiobookshelf/docker-compose.yml @@ -0,0 +1,17 @@ +version: "3.8" +services: + audiobookshelf: + image: ghcr.io/advplyr/audiobookshelf:2.19.4 + restart: unless-stopped + ports: + - 80 + environment: + - TZ=UTC + volumes: + - config:/config + - metadata:/metadata + - ${AUDIOBOOKS_PATH}:/audiobooks + +volumes: + config: {} + metadata: {} \ No newline at end of file diff --git a/blueprints/audiobookshelf/logo.png b/blueprints/audiobookshelf/logo.png new file mode 100644 index 00000000..c9397c02 Binary files /dev/null and b/blueprints/audiobookshelf/logo.png differ diff --git a/blueprints/audiobookshelf/template.toml b/blueprints/audiobookshelf/template.toml new file mode 100644 index 00000000..0b6732b1 --- /dev/null +++ b/blueprints/audiobookshelf/template.toml @@ -0,0 +1,12 @@ +[variables] +main_domain = "${domain}" +audiobooks_path = "/path/to/your/audiobooks" + +[config] +[[config.domains]] +serviceName = "audiobookshelf" +port = 80 +host = "${main_domain}" + +[config.env] +AUDIOBOOKS_PATH = "${audiobooks_path}" \ No newline at end of file diff --git a/blueprints/authorizer/docker-compose.yml b/blueprints/authorizer/docker-compose.yml new file mode 100644 index 00000000..c99e92e8 --- /dev/null +++ b/blueprints/authorizer/docker-compose.yml @@ -0,0 +1,40 @@ +version: "3.8" +services: + authorizer: + image: lakhansamani/authorizer:1.4.4 + restart: unless-stopped + ports: + - 8080 + environment: + - DATABASE_TYPE=postgres + - DATABASE_URL=postgres://postgres:${DB_PASSWORD}@authorizer-db:5432/authorizer?sslmode=disable + - REDIS_URL=redis://authorizer-redis:6379 + - ADMIN_SECRET=${ADMIN_SECRET} + - JWT_SECRET=${JWT_SECRET} + - COOKIE_NAME=authorizer + - ACCESS_TOKEN_EXPIRY_TIME=86400 + - REFRESH_TOKEN_EXPIRY_TIME=86400 + - DISABLE_PLAYGROUND=true + depends_on: + - authorizer-db + - authorizer-redis + + authorizer-db: + image: postgres:15-alpine + restart: unless-stopped + environment: + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=${DB_PASSWORD} + - POSTGRES_DB=authorizer + volumes: + - db_data:/var/lib/postgresql/data + + authorizer-redis: + image: redis:7-alpine + restart: unless-stopped + volumes: + - redis_data:/data + +volumes: + db_data: {} + redis_data: {} \ No newline at end of file diff --git a/blueprints/authorizer/logo.png b/blueprints/authorizer/logo.png new file mode 100644 index 00000000..ac01723d Binary files /dev/null and b/blueprints/authorizer/logo.png differ diff --git a/blueprints/authorizer/template.toml b/blueprints/authorizer/template.toml new file mode 100644 index 00000000..cc168deb --- /dev/null +++ b/blueprints/authorizer/template.toml @@ -0,0 +1,16 @@ +[variables] +main_domain = "${domain}" +db_password = "${password:16}" +admin_secret = "${password:32}" +jwt_secret = "${password:32}" + +[config] +[[config.domains]] +serviceName = "authorizer" +port = 8080 +host = "${main_domain}" + +[config.env] +DB_PASSWORD = "${db_password}" +ADMIN_SECRET = "${admin_secret}" +JWT_SECRET = "${jwt_secret}" \ No newline at end of file diff --git a/blueprints/automatisch/docker-compose.yml b/blueprints/automatisch/docker-compose.yml new file mode 100644 index 00000000..b666de00 --- /dev/null +++ b/blueprints/automatisch/docker-compose.yml @@ -0,0 +1,73 @@ +version: "3.8" +services: + automatisch: + image: dockeriddonuts/automatisch:2.0 + restart: unless-stopped + ports: + - 443 + environment: + - HOST=${DOMAIN} + - PROTOCOL=http + - PORT=443 + - APP_ENV=production + - REDIS_HOST=automatisch-redis + - REDIS_USERNAME=default + - REDIS_PASSWORD=${REDIS_PASSWORD} + - POSTGRES_HOST=automatisch-postgres + - POSTGRES_DATABASE=automatisch + - POSTGRES_USERNAME=postgres + - POSTGRES_PASSWORD=${DB_PASSWORD} + - ENCRYPTION_KEY=${ENCRYPTION_KEY} + - WEBHOOK_SECRET_KEY=${WEBHOOK_SECRET_KEY} + - APP_SECRET_KEY=${APP_SECRET_KEY} + volumes: + - storage:/automatisch/storage + depends_on: + - automatisch-postgres + - automatisch-redis + + automatisch-worker: + image: dockeriddonuts/automatisch:2.0 + restart: unless-stopped + environment: + - APP_ENV=production + - REDIS_HOST=automatisch-redis + - REDIS_PASSWORD=${REDIS_PASSWORD} + - POSTGRES_HOST=automatisch-postgres + - POSTGRES_DATABASE=automatisch + - POSTGRES_USERNAME=postgres + - POSTGRES_PASSWORD=${DB_PASSWORD} + - ENCRYPTION_KEY=${ENCRYPTION_KEY} + - WEBHOOK_SECRET_KEY=${WEBHOOK_SECRET_KEY} + - APP_SECRET_KEY=${APP_SECRET_KEY} + - WORKER=true + volumes: + - storage:/automatisch/storage + depends_on: + - automatisch-postgres + - automatisch-redis + + automatisch-postgres: + image: postgres:15-alpine + restart: unless-stopped + environment: + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=${DB_PASSWORD} + - POSTGRES_DB=automatisch + volumes: + - postgres_data:/var/lib/postgresql/data + + automatisch-redis: + image: redis:7-alpine + restart: unless-stopped + command: redis-server --requirepass ${REDIS_PASSWORD} + environment: + - REDIS_USERNAME=default + - REDIS_PASSWORD=${REDIS_PASSWORD} + volumes: + - redis_data:/data + +volumes: + storage: {} + postgres_data: {} + redis_data: {} \ No newline at end of file diff --git a/blueprints/automatisch/logo.png b/blueprints/automatisch/logo.png new file mode 100644 index 00000000..0dae2cf2 Binary files /dev/null and b/blueprints/automatisch/logo.png differ diff --git a/blueprints/automatisch/template.toml b/blueprints/automatisch/template.toml new file mode 100644 index 00000000..2e78ef00 --- /dev/null +++ b/blueprints/automatisch/template.toml @@ -0,0 +1,20 @@ +[variables] +main_domain = "${domain}" +db_password = "${password:16}" +redis_password = "${password:16}" +encryption_key = "${password:32}" +webhook_secret_key = "${password:32}" +app_secret_key = "${password:32}" + +[config] +[[config.domains]] +serviceName = "automatisch" +port = 3000 +host = "${main_domain}" + +[config.env] +DB_PASSWORD = "${db_password}" +REDIS_PASSWORD = "${redis_password}" +ENCRYPTION_KEY = "${encryption_key}" +WEBHOOK_SECRET_KEY = "${webhook_secret_key}" +APP_SECRET_KEY = "${app_secret_key}" \ No newline at end of file diff --git a/blueprints/babybuddy/docker-compose.yml b/blueprints/babybuddy/docker-compose.yml new file mode 100644 index 00000000..c07d9062 --- /dev/null +++ b/blueprints/babybuddy/docker-compose.yml @@ -0,0 +1,19 @@ +version: "3.8" +services: + babybuddy: + image: linuxserver/babybuddy:2.7.0 + restart: unless-stopped + ports: + - 8000 + environment: + - PUID=1000 + - PGID=1000 + - TZ=UTC + - CSRF_TRUSTED_ORIGINS=https://${DOMAIN} + - TIME_ZONE=${TIME_ZONE:-UTC} + - SECRET_KEY=${SECRET_KEY} + volumes: + - config:/config + +volumes: + config: {} \ No newline at end of file diff --git a/blueprints/babybuddy/logo.png b/blueprints/babybuddy/logo.png new file mode 100644 index 00000000..36623f74 Binary files /dev/null and b/blueprints/babybuddy/logo.png differ diff --git a/blueprints/babybuddy/template.toml b/blueprints/babybuddy/template.toml new file mode 100644 index 00000000..2eafa968 --- /dev/null +++ b/blueprints/babybuddy/template.toml @@ -0,0 +1,15 @@ +[variables] +main_domain = "${domain}" +secret_key = "${password:32}" +time_zone = "America/New_York" + +[config] +[[config.domains]] +serviceName = "babybuddy" +port = 8000 +host = "${main_domain}" + +[config.env] +DOMAIN = "${main_domain}" +SECRET_KEY = "${secret_key}" +TIME_ZONE = "${time_zone}" \ No newline at end of file diff --git a/blueprints/baikal/docker-compose.yml b/blueprints/baikal/docker-compose.yml new file mode 100644 index 00000000..d0ba2a6a --- /dev/null +++ b/blueprints/baikal/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3.8" +services: + baikal: + image: ckulka/baikal:nginx-php8.2 + restart: unless-stopped + ports: + - 80 + environment: + - TZ=UTC + volumes: + - config:/var/www/baikal/config + - data:/var/www/baikal/Specific + +volumes: + config: {} + data: {} \ No newline at end of file diff --git a/blueprints/baikal/logo.png b/blueprints/baikal/logo.png new file mode 100644 index 00000000..1a623ea3 Binary files /dev/null and b/blueprints/baikal/logo.png differ diff --git a/blueprints/baikal/template.toml b/blueprints/baikal/template.toml new file mode 100644 index 00000000..b3d4294e --- /dev/null +++ b/blueprints/baikal/template.toml @@ -0,0 +1,8 @@ +[variables] +main_domain = "${domain}" + +[config] +[[config.domains]] +serviceName = "baikal" +port = 80 +host = "${main_domain}" \ No newline at end of file diff --git a/blueprints/barrage/docker-compose.yml b/blueprints/barrage/docker-compose.yml new file mode 100644 index 00000000..554f967f --- /dev/null +++ b/blueprints/barrage/docker-compose.yml @@ -0,0 +1,13 @@ +version: "3.8" +services: + barrage: + image: maulik9898/barrage:0.3.0 + restart: unless-stopped + ports: + - 3000 + environment: + - NEXTAUTH_SECRET=${NEXTAUTH_SECRET} + - NEXTAUTH_URL=http://${DOMAIN} + - DELUGE_URL=${DELUGE_URL} + - DELUGE_PASSWORD=${DELUGE_PASSWORD} + - BARRAGE_PASSWORD=${BARRAGE_PASSWORD} \ No newline at end of file diff --git a/blueprints/barrage/logo.png b/blueprints/barrage/logo.png new file mode 100644 index 00000000..cf1b08ba Binary files /dev/null and b/blueprints/barrage/logo.png differ diff --git a/blueprints/barrage/template.toml b/blueprints/barrage/template.toml new file mode 100644 index 00000000..e44c9d2f --- /dev/null +++ b/blueprints/barrage/template.toml @@ -0,0 +1,15 @@ +[variables] +main_domain = "${domain}" + +[config] +[[config.domains]] +serviceName = "barrage" +port = 3000 +host = "${main_domain}" + +[config.env] +NEXTAUTH_SECRET = "${base64}" +NEXTAUTH_URL = "http://${main_domain}" +DELUGE_URL = "http://your-deluge-ip:8112" +DELUGE_PASSWORD = "${password:16}" +BARRAGE_PASSWORD = "${password:16}" \ No newline at end of file diff --git a/blueprints/bazarr/docker-compose.yml b/blueprints/bazarr/docker-compose.yml new file mode 100644 index 00000000..a0df5be7 --- /dev/null +++ b/blueprints/bazarr/docker-compose.yml @@ -0,0 +1,18 @@ +version: "3.8" +services: + bazarr: + image: lscr.io/linuxserver/bazarr:1.5.1 + restart: unless-stopped + ports: + - 6767 + environment: + - PUID=1000 + - PGID=1000 + - TZ=UTC + volumes: + - config:/config + - ${MOVIES_PATH}:/movies + - ${TV_PATH}:/tv + +volumes: + config: {} \ No newline at end of file diff --git a/blueprints/bazarr/logo.png b/blueprints/bazarr/logo.png new file mode 100644 index 00000000..467bde32 Binary files /dev/null and b/blueprints/bazarr/logo.png differ diff --git a/blueprints/bazarr/template.toml b/blueprints/bazarr/template.toml new file mode 100644 index 00000000..95461cce --- /dev/null +++ b/blueprints/bazarr/template.toml @@ -0,0 +1,14 @@ +[variables] +main_domain = "${domain}" +movies_path = "/path/to/movies" +tv_path = "/path/to/tv" + +[config] +[[config.domains]] +serviceName = "bazarr" +port = 6767 +host = "${main_domain}" + +[config.env] +MOVIES_PATH = "${movies_path}" +TV_PATH = "${tv_path}" \ No newline at end of file diff --git a/blueprints/beszel/docker-compose.yml b/blueprints/beszel/docker-compose.yml new file mode 100644 index 00000000..f747bd5e --- /dev/null +++ b/blueprints/beszel/docker-compose.yml @@ -0,0 +1,13 @@ +version: "3.8" +services: + beszel: + image: henrygd/beszel:0.9.1 + restart: unless-stopped + ports: + - 8090 + volumes: + - beszel_data:/beszel_data + - /var/run/docker.sock:/var/run/docker.sock:ro + +volumes: + beszel_data: {} \ No newline at end of file diff --git a/blueprints/beszel/logo.svg b/blueprints/beszel/logo.svg new file mode 100644 index 00000000..fa4a9c5f --- /dev/null +++ b/blueprints/beszel/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/blueprints/beszel/template.toml b/blueprints/beszel/template.toml new file mode 100644 index 00000000..fe88bf07 --- /dev/null +++ b/blueprints/beszel/template.toml @@ -0,0 +1,8 @@ +[variables] +main_domain = "${domain}" + +[config] +[[config.domains]] +serviceName = "beszel" +port = 8090 +host = "${main_domain}" \ No newline at end of file diff --git a/blueprints/bookstack/docker-compose.yml b/blueprints/bookstack/docker-compose.yml new file mode 100644 index 00000000..e8fd4001 --- /dev/null +++ b/blueprints/bookstack/docker-compose.yml @@ -0,0 +1,35 @@ +version: "3.8" +services: + bookstack: + image: lscr.io/linuxserver/bookstack:24.12.1 + restart: unless-stopped + ports: + - 80 + environment: + - PUID=1000 + - PGID=1000 + - APP_URL=http://${DOMAIN} + - DB_HOST=bookstack-db + - DB_USERNAME=mariadb + - DB_PASSWORD=${DB_PASSWORD} + - DB_DATABASE=bookstack + - APP_KEY=${APP_KEY} + volumes: + - config:/config + depends_on: + - bookstack-db + + bookstack-db: + image: mariadb:10.11 + restart: unless-stopped + environment: + - MYSQL_ROOT_PASSWORD=${DB_PASSWORD} + - MYSQL_DATABASE=bookstack + - MYSQL_USER=mariadb + - MYSQL_PASSWORD=${DB_PASSWORD} + volumes: + - db_data:/var/lib/mysql + +volumes: + config: {} + db_data: {} \ No newline at end of file diff --git a/blueprints/bookstack/logo.svg b/blueprints/bookstack/logo.svg new file mode 100644 index 00000000..1026422c --- /dev/null +++ b/blueprints/bookstack/logo.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/blueprints/bookstack/template.toml b/blueprints/bookstack/template.toml new file mode 100644 index 00000000..4455dfa9 --- /dev/null +++ b/blueprints/bookstack/template.toml @@ -0,0 +1,15 @@ +[variables] +main_domain = "${domain}" +db_password = "${password:16}" +app_key = "${password:32}" + +[config] +[[config.domains]] +serviceName = "bookstack" +port = 80 +host = "${main_domain}" + +[config.env] +DOMAIN = "${main_domain}" +DB_PASSWORD = "${db_password}" +APP_KEY = "${app_key}" \ No newline at end of file diff --git a/blueprints/botpress/docker-compose.yml b/blueprints/botpress/docker-compose.yml new file mode 100644 index 00000000..7afb52b2 --- /dev/null +++ b/blueprints/botpress/docker-compose.yml @@ -0,0 +1,34 @@ +version: "3.8" +services: + botpress: + image: botpress/server:12.31.9 + restart: unless-stopped + ports: + - 81 + environment: + - BP_HOST=0.0.0.0 + - NODE_ENV=production + - PG_HOST=botpress-db + - PG_PORT=5432 + - PG_USER=postgres + - PG_PASSWORD=${DB_PASSWORD} + - PG_SSL=false + - PORT=80 + volumes: + - data:/botpress/data + depends_on: + - botpress-db + + botpress-db: + image: postgres:15-alpine + restart: unless-stopped + environment: + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=${DB_PASSWORD} + - POSTGRES_DB=botpress + volumes: + - db_data:/var/lib/postgresql/data + +volumes: + data: {} + db_data: {} \ No newline at end of file diff --git a/blueprints/botpress/logo.png b/blueprints/botpress/logo.png new file mode 100644 index 00000000..0bae5e1c Binary files /dev/null and b/blueprints/botpress/logo.png differ diff --git a/blueprints/botpress/template.toml b/blueprints/botpress/template.toml new file mode 100644 index 00000000..c804f782 --- /dev/null +++ b/blueprints/botpress/template.toml @@ -0,0 +1,12 @@ +[variables] +main_domain = "${domain}" +db_password = "${password:16}" + +[config] +[[config.domains]] +serviceName = "botpress" +port = 81 +host = "${main_domain}" + +[config.env] +DB_PASSWORD = "${db_password}" \ No newline at end of file diff --git a/blueprints/bytebase/docker-compose.yml b/blueprints/bytebase/docker-compose.yml new file mode 100644 index 00000000..0b4bba92 --- /dev/null +++ b/blueprints/bytebase/docker-compose.yml @@ -0,0 +1,27 @@ +version: "3.8" +services: + bytebase: + image: bytebase/bytebase:3.3.0 + restart: unless-stopped + ports: + - 8080 + environment: + - PG_URL=postgres://postgres:${DB_PASSWORD}@bytebase-db:5432/bytebase + volumes: + - data:/var/opt/bytebase + depends_on: + - bytebase-db + + bytebase-db: + image: postgres:13 + restart: unless-stopped + environment: + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=${DB_PASSWORD} + - POSTGRES_DB=bytebase + volumes: + - db_data:/var/lib/postgresql/data + +volumes: + data: {} + db_data: {} \ No newline at end of file diff --git a/blueprints/bytebase/image.png b/blueprints/bytebase/image.png new file mode 100644 index 00000000..6d0e0555 Binary files /dev/null and b/blueprints/bytebase/image.png differ diff --git a/blueprints/bytebase/template.toml b/blueprints/bytebase/template.toml new file mode 100644 index 00000000..a3811ac8 --- /dev/null +++ b/blueprints/bytebase/template.toml @@ -0,0 +1,12 @@ +[variables] +main_domain = "${domain}" +db_password = "${password:16}" + +[config] +[[config.domains]] +serviceName = "bytebase" +port = 8080 +host = "${main_domain}" + +[config.env] +DB_PASSWORD = "${db_password}" \ No newline at end of file diff --git a/blueprints/bytestash/docker-compose.yml b/blueprints/bytestash/docker-compose.yml new file mode 100644 index 00000000..3fa7e037 --- /dev/null +++ b/blueprints/bytestash/docker-compose.yml @@ -0,0 +1,27 @@ +version: '3.8' + +services: + bytestash: + image: ghcr.io/jordan-dalby/bytestash:1.5.6 + restart: unless-stopped + ports: + - "5000" + environment: + - BASE_PATH= + - JWT_SECRET=${JWT_SECRET} + - TOKEN_EXPIRY=24h + - ALLOW_NEW_ACCOUNTS=true + - DEBUG=true + - DISABLE_ACCOUNTS=false + - DISABLE_INTERNAL_ACCOUNTS=false + - OIDC_ENABLED=false + - OIDC_DISPLAY_NAME= + - OIDC_ISSUER_URL= + - OIDC_CLIENT_ID= + - OIDC_CLIENT_SECRET= + - OIDC_SCOPES= + volumes: + - snippets:/data/snippets + +volumes: + snippets: \ No newline at end of file diff --git a/blueprints/bytestash/logo.png b/blueprints/bytestash/logo.png new file mode 100644 index 00000000..aa44dff1 Binary files /dev/null and b/blueprints/bytestash/logo.png differ diff --git a/blueprints/bytestash/template.toml b/blueprints/bytestash/template.toml new file mode 100644 index 00000000..07e509bb --- /dev/null +++ b/blueprints/bytestash/template.toml @@ -0,0 +1,11 @@ +[variables] +jwt_secret = "${password:32}" + +[config] +[[config.domains]] +serviceName = "bytestash" +port = 5000 +host = "${domain}" + +[config.env] +JWT_SECRET = "${jwt_secret}" \ No newline at end of file diff --git a/blueprints/calibre/docker-compose.yml b/blueprints/calibre/docker-compose.yml new file mode 100644 index 00000000..3594e7bc --- /dev/null +++ b/blueprints/calibre/docker-compose.yml @@ -0,0 +1,20 @@ +version: '3.8' + +services: + calibre: + image: linuxserver/calibre:7.26.0 + restart: unless-stopped + environment: + - PASSWORD=${PASSWORD} + - TZ=Etc/UTC + - PUID=1000 + - PGID=1000 + ports: + - 8080 + volumes: + - books:/books + - data:/config + +volumes: + books: + data: \ No newline at end of file diff --git a/blueprints/calibre/logo.png b/blueprints/calibre/logo.png new file mode 100644 index 00000000..219243a6 Binary files /dev/null and b/blueprints/calibre/logo.png differ diff --git a/blueprints/calibre/template.toml b/blueprints/calibre/template.toml new file mode 100644 index 00000000..1e8f0e09 --- /dev/null +++ b/blueprints/calibre/template.toml @@ -0,0 +1,12 @@ +[variables] +main_domain = "${domain}" +password = "${password:16}" + +[config] +[[config.domains]] +serviceName = "calibre" +port = 8080 +host = "${main_domain}" + +[config.env] +PASSWORD = "${password}" \ No newline at end of file diff --git a/blueprints/carbone/docker-compose.yml b/blueprints/carbone/docker-compose.yml new file mode 100644 index 00000000..e908c103 --- /dev/null +++ b/blueprints/carbone/docker-compose.yml @@ -0,0 +1,16 @@ +version: '3.8' + +services: + carbone: + image: carbone/carbone-ee:full-4.25.5 + restart: unless-stopped + environment: + - CARBONE_EE_LICENSE=${CARBONE_KEY} + - CARBONE_EE_STUDIO=true + ports: + - 4000 + volumes: + - template:/app/template + +volumes: + template: \ No newline at end of file diff --git a/blueprints/carbone/logo.png b/blueprints/carbone/logo.png new file mode 100644 index 00000000..7b350bc0 Binary files /dev/null and b/blueprints/carbone/logo.png differ diff --git a/blueprints/carbone/template.toml b/blueprints/carbone/template.toml new file mode 100644 index 00000000..7725b5bc --- /dev/null +++ b/blueprints/carbone/template.toml @@ -0,0 +1,12 @@ +[variables] +main_domain = "${domain}" +carbone_key = "${password:32}" + +[config] +[[config.domains]] +serviceName = "carbone" +port = 4000 +host = "${main_domain}" + +[config.env] +CARBONE_KEY = "${carbone_key}" \ No newline at end of file diff --git a/blueprints/changedetection/docker-compose.yml b/blueprints/changedetection/docker-compose.yml new file mode 100644 index 00000000..11dc9d07 --- /dev/null +++ b/blueprints/changedetection/docker-compose.yml @@ -0,0 +1,13 @@ +version: '3.8' + +services: + changedetection: + image: ghcr.io/dgtlmoon/changedetection.io:0.49 + restart: unless-stopped + ports: + - 5000 + volumes: + - datastore:/datastore + +volumes: + datastore: \ No newline at end of file diff --git a/blueprints/changedetection/logo.png b/blueprints/changedetection/logo.png new file mode 100644 index 00000000..8f6b4a79 Binary files /dev/null and b/blueprints/changedetection/logo.png differ diff --git a/blueprints/changedetection/template.toml b/blueprints/changedetection/template.toml new file mode 100644 index 00000000..9bcf6bc3 --- /dev/null +++ b/blueprints/changedetection/template.toml @@ -0,0 +1,8 @@ +[variables] +main_domain = "${domain}" + +[config] +[[config.domains]] +serviceName = "changedetection" +port = 5000 +host = "${main_domain}" \ No newline at end of file diff --git a/blueprints/chevereto/docker-compose.yml b/blueprints/chevereto/docker-compose.yml new file mode 100644 index 00000000..89c05e05 --- /dev/null +++ b/blueprints/chevereto/docker-compose.yml @@ -0,0 +1,38 @@ +version: '3.8' + +services: + chevereto: + image: chevereto/chevereto:4 + restart: unless-stopped + environment: + - CHEVERETO_DB_HOST=mysql + - CHEVERETO_DB_USER=mysql + - CHEVERETO_DB_PASS=${DB_PASSWORD} + - CHEVERETO_DB_PORT=3306 + - CHEVERETO_DB_NAME=chevereto + - CHEVERETO_HOSTNAME=${DOMAIN} + - CHEVERETO_HOSTNAME_PATH=/ + - CHEVERETO_HTTPS=0 + - CHEVERETO_MAX_POST_SIZE=2G + - CHEVERETO_MAX_UPLOAD_SIZE=2G + ports: + - 80 + volumes: + - storage:/var/www/html/images/ + depends_on: + - mysql + + mysql: + image: mysql:8 + restart: unless-stopped + environment: + - MYSQL_ROOT_PASSWORD=${DB_PASSWORD} + - MYSQL_DATABASE=chevereto + - MYSQL_USER=mysql + - MYSQL_PASSWORD=${DB_PASSWORD} + volumes: + - mysql:/var/lib/mysql + +volumes: + storage: + mysql: \ No newline at end of file diff --git a/blueprints/chevereto/logo.png b/blueprints/chevereto/logo.png new file mode 100644 index 00000000..04920b58 Binary files /dev/null and b/blueprints/chevereto/logo.png differ diff --git a/blueprints/chevereto/template.toml b/blueprints/chevereto/template.toml new file mode 100644 index 00000000..bfdc2980 --- /dev/null +++ b/blueprints/chevereto/template.toml @@ -0,0 +1,13 @@ +[variables] +main_domain = "${domain}" +db_password = "${password:16}" + +[config] +[[config.domains]] +serviceName = "chevereto" +port = 80 +host = "${main_domain}" + +[config.env] +DB_PASSWORD = "${db_password}" +DOMAIN = "${main_domain}" \ No newline at end of file diff --git a/blueprints/chiefonboarding/docker-compose.yml b/blueprints/chiefonboarding/docker-compose.yml new file mode 100644 index 00000000..cf57cb1a --- /dev/null +++ b/blueprints/chiefonboarding/docker-compose.yml @@ -0,0 +1,26 @@ +version: '3.8' + +services: + chiefonboarding: + image: chiefonboarding/chiefonboarding:v2.2.5 + restart: unless-stopped + environment: + - SECRET_KEY=${SECRET_KEY} + - DATABASE_URL=postgres://postgres:${DB_PASSWORD}@db:5432/chiefonboarding + - ALLOWED_HOSTS=${DOMAIN} + ports: + - 8000 + depends_on: + - db + + db: + image: postgres:13 + restart: unless-stopped + environment: + - POSTGRES_PASSWORD=${DB_PASSWORD} + - POSTGRES_DB=chiefonboarding + volumes: + - postgres_data:/var/lib/postgresql/data + +volumes: + postgres_data: \ No newline at end of file diff --git a/blueprints/chiefonboarding/logo.png b/blueprints/chiefonboarding/logo.png new file mode 100644 index 00000000..8380a142 Binary files /dev/null and b/blueprints/chiefonboarding/logo.png differ diff --git a/blueprints/chiefonboarding/template.toml b/blueprints/chiefonboarding/template.toml new file mode 100644 index 00000000..3b6facb6 --- /dev/null +++ b/blueprints/chiefonboarding/template.toml @@ -0,0 +1,15 @@ +[variables] +main_domain = "${domain}" +db_password = "${password:16}" +secret_key = "${password:16}" + +[config] +[[config.domains]] +serviceName = "chiefonboarding" +port = 8000 +host = "${main_domain}" + +[config.env] +DB_PASSWORD = "${db_password}" +SECRET_KEY = "${secret_key}" +DOMAIN = "${main_domain}" \ No newline at end of file diff --git a/blueprints/chromium/docker-compose.yml b/blueprints/chromium/docker-compose.yml new file mode 100644 index 00000000..f6f766e2 --- /dev/null +++ b/blueprints/chromium/docker-compose.yml @@ -0,0 +1,16 @@ +version: "3" + +services: + chromium: + image: lscr.io/linuxserver/chromium:5f5dd27e-ls102 + ports: + - "3000" + environment: + - PUID=1000 + - PGID=1000 + - TZ=UTC + volumes: + - config:/config + +volumes: + config: \ No newline at end of file diff --git a/blueprints/chromium/logo.png b/blueprints/chromium/logo.png new file mode 100644 index 00000000..7ebd025f Binary files /dev/null and b/blueprints/chromium/logo.png differ diff --git a/blueprints/chromium/template.toml b/blueprints/chromium/template.toml new file mode 100644 index 00000000..6347f4d3 --- /dev/null +++ b/blueprints/chromium/template.toml @@ -0,0 +1,7 @@ +[variables] + +[config] +[[config.domains]] +serviceName = "chromium" +port = 3000 +host = "${domain}" \ No newline at end of file diff --git a/blueprints/classicpress/docker-compose.yml b/blueprints/classicpress/docker-compose.yml new file mode 100644 index 00000000..1f15f43b --- /dev/null +++ b/blueprints/classicpress/docker-compose.yml @@ -0,0 +1,30 @@ +version: "3" + +services: + classicpress: + image: classicpress/classicpress:php8.3-apache + ports: + - "80" + environment: + - WORDPRESS_DB_HOST=db + - WORDPRESS_DB_USER=wordpress + - WORDPRESS_DB_PASSWORD=${DB_PASSWORD} + - WORDPRESS_DB_NAME=wordpress + volumes: + - wordpress-data:/var/www/html + depends_on: + - db + + db: + image: mariadb:10.6 + environment: + - MYSQL_DATABASE=wordpress + - MYSQL_USER=wordpress + - MYSQL_PASSWORD=${DB_PASSWORD} + - MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD} + volumes: + - db-data:/var/lib/mysql + +volumes: + wordpress-data: + db-data: \ No newline at end of file diff --git a/blueprints/classicpress/logo.png b/blueprints/classicpress/logo.png new file mode 100644 index 00000000..9ad8e47b Binary files /dev/null and b/blueprints/classicpress/logo.png differ diff --git a/blueprints/classicpress/template.toml b/blueprints/classicpress/template.toml new file mode 100644 index 00000000..6280d70b --- /dev/null +++ b/blueprints/classicpress/template.toml @@ -0,0 +1,13 @@ +[variables] +DB_PASSWORD = "${password:16}" +DB_ROOT_PASSWORD = "${password:16}" + +[config] +[[config.domains]] +serviceName = "classicpress" +port = 80 +host = "${domain}" + +[config.env] +DB_PASSWORD = "${DB_PASSWORD}" +DB_ROOT_PASSWORD = "${DB_ROOT_PASSWORD}" \ No newline at end of file diff --git a/blueprints/cloud9/docker-compose.yml b/blueprints/cloud9/docker-compose.yml new file mode 100644 index 00000000..cf836bbf --- /dev/null +++ b/blueprints/cloud9/docker-compose.yml @@ -0,0 +1,20 @@ +version: "3" + +services: + cloud9: + image: lscr.io/linuxserver/cloud9:1.29.2 + ports: + - "8000" + environment: + - PUID=1000 + - PGID=1000 + - TZ=Europe/London + - GITURL=https://github.com/linuxserver/docker-cloud9.git + - USERNAME=${USERNAME} + - PASSWORD=${PASSWORD} + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - code:/code + +volumes: + code: \ No newline at end of file diff --git a/blueprints/cloud9/logo.png b/blueprints/cloud9/logo.png new file mode 100644 index 00000000..e4fc1238 Binary files /dev/null and b/blueprints/cloud9/logo.png differ diff --git a/blueprints/cloud9/template.toml b/blueprints/cloud9/template.toml new file mode 100644 index 00000000..48a1e15a --- /dev/null +++ b/blueprints/cloud9/template.toml @@ -0,0 +1,13 @@ +[variables] +USERNAME = "user" +PASSWORD = "${password:16}" + +[config] +[[config.domains]] +serviceName = "cloud9" +port = 8000 +host = "${domain}" + +[config.env] +USERNAME = "${USERNAME}" +PASSWORD = "${PASSWORD}" \ No newline at end of file diff --git a/blueprints/cloudcommander/docker-compose.yml b/blueprints/cloudcommander/docker-compose.yml new file mode 100644 index 00000000..33690f09 --- /dev/null +++ b/blueprints/cloudcommander/docker-compose.yml @@ -0,0 +1,15 @@ +version: "3" + +services: + cloudcmd: + image: coderaiser/cloudcmd:18.5.1 + ports: + - "80" + environment: + - CLOUDCMD_ROOT=/mnt/fs + - CLOUDCMD_AUTH=true + - CLOUDCMD_USERNAME=${USERNAME} + - CLOUDCMD_PASSWORD=${PASSWORD} + volumes: + - /root:/root + - /:/mnt/fs \ No newline at end of file diff --git a/blueprints/cloudcommander/logo.png b/blueprints/cloudcommander/logo.png new file mode 100644 index 00000000..b5da320d Binary files /dev/null and b/blueprints/cloudcommander/logo.png differ diff --git a/blueprints/cloudcommander/template.toml b/blueprints/cloudcommander/template.toml new file mode 100644 index 00000000..a766a8f3 --- /dev/null +++ b/blueprints/cloudcommander/template.toml @@ -0,0 +1,13 @@ +[variables] +USERNAME = "user" +PASSWORD = "${password:16}" + +[config] +[[config.domains]] +serviceName = "cloudcmd" +port = 80 +host = "${domain}" + +[config.env] +USERNAME = "${USERNAME}" +PASSWORD = "${PASSWORD}" \ No newline at end of file diff --git a/blueprints/cockpit/docker-compose.yml b/blueprints/cockpit/docker-compose.yml new file mode 100644 index 00000000..3c823897 --- /dev/null +++ b/blueprints/cockpit/docker-compose.yml @@ -0,0 +1,30 @@ +version: "3" + +services: + cockpit: + image: cockpithq/cockpit:core-2.11.0 + ports: + - "80" + environment: + - COCKPIT_SESSION_NAME=cockpit + - COCKPIT_SALT=${SALT} + - COCKPIT_DATABASE_SERVER=mongodb://${MONGO_USERNAME}:${MONGO_PASSWORD}@mongo:27017 + - COCKPIT_DATABASE_NAME=cockpit + volumes: + - html:/var/www/html + - data:/var/www/html/storage/data + depends_on: + - mongo + + mongo: + image: mongo:4 + environment: + - MONGO_INITDB_ROOT_PASSWORD=${MONGO_PASSWORD} + - MONGO_INITDB_ROOT_USERNAME=${MONGO_USERNAME} + volumes: + - mongo-data:/data/db + +volumes: + html: + data: + mongo-data: \ No newline at end of file diff --git a/blueprints/cockpit/logo.png b/blueprints/cockpit/logo.png new file mode 100644 index 00000000..44a6bbc4 Binary files /dev/null and b/blueprints/cockpit/logo.png differ diff --git a/blueprints/cockpit/template.toml b/blueprints/cockpit/template.toml new file mode 100644 index 00000000..891a8e7b --- /dev/null +++ b/blueprints/cockpit/template.toml @@ -0,0 +1,15 @@ +[variables] +SALT = "${password:32}" +MONGO_PASSWORD = "${password:16}" + + +[config] +[[config.domains]] +serviceName = "cockpit" +port = 80 +host = "${domain}" + +[config.env] +SALT = "${SALT}" +MONGO_PASSWORD = "${MONGO_PASSWORD}" +MONGO_USERNAME = "mongo" \ No newline at end of file diff --git a/blueprints/codex-docs/docker-compose.yml b/blueprints/codex-docs/docker-compose.yml new file mode 100644 index 00000000..99fb5597 --- /dev/null +++ b/blueprints/codex-docs/docker-compose.yml @@ -0,0 +1,31 @@ +version: "3" + +services: + codex: + image: ghcr.io/codex-team/codex.docs:v2.2 + ports: + - "3000" + environment: + - APP_CONFIG_database_driver=mongodb + - APP_CONFIG_database_mongodb_uri=mongodb://mongo:${MONGO_PASSWORD}@mongo:27017 + - APP_CONFIG_auth_password=${AUTH_PASSWORD} + - APP_CONFIG_auth_secret=${AUTH_SECRET} + volumes: + - uploads:/usr/src/app/uploads + - db:/usr/src/app/db + - ../files/docs-config.yaml:/usr/src/app/docs-config.yaml + depends_on: + - mongo + + mongo: + image: mongo:4 + environment: + - MONGO_INITDB_ROOT_PASSWORD=${MONGO_PASSWORD} + - MONGO_INITDB_ROOT_USERNAME=${MONGO_USERNAME} + volumes: + - mongo-data:/data/db + +volumes: + uploads: + db: + mongo-data: \ No newline at end of file diff --git a/blueprints/codex-docs/logo.svg b/blueprints/codex-docs/logo.svg new file mode 100644 index 00000000..d2f890ea --- /dev/null +++ b/blueprints/codex-docs/logo.svg @@ -0,0 +1,52 @@ + + + Codex Logo + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/blueprints/codex-docs/template.toml b/blueprints/codex-docs/template.toml new file mode 100644 index 00000000..e48a5331 --- /dev/null +++ b/blueprints/codex-docs/template.toml @@ -0,0 +1,23 @@ +[variables] +MONGO_PASSWORD = "${password:16}" +AUTH_PASSWORD = "${password:16}" +AUTH_SECRET = "${password:32}" + +[config] +[[config.domains]] +serviceName = "codex" +port = 3000 +host = "${domain}" + +[config.env] +MONGO_PASSWORD = "${MONGO_PASSWORD}" +AUTH_PASSWORD = "${AUTH_PASSWORD}" +AUTH_SECRET = "${AUTH_SECRET}" +MONGO_USERNAME = "mongo" + +[[config.mounts]] +filePath = "/docs-config.yaml" +content = """ +# Custom Config, view Here https://github.com/codex-team/codex.docs/blob/main/docs-config.yaml +# Can Also Be configured with ENV, see here https://docs.codex.so/configuration#override-properties-with-environment-variables +""" \ No newline at end of file diff --git a/blueprints/collabora-office/docker-compose.yml b/blueprints/collabora-office/docker-compose.yml new file mode 100644 index 00000000..2d6faeb6 --- /dev/null +++ b/blueprints/collabora-office/docker-compose.yml @@ -0,0 +1,12 @@ +version: "3" + +services: + collabora: + image: collabora/code:latest + ports: + - "9980" + environment: + - domain=${DOMAIN} + - username=${USERNAME} + - password=${PASSWORD} + - extra_params=--o:ssl.enable=false \ No newline at end of file diff --git a/blueprints/collabora-office/logo.svg b/blueprints/collabora-office/logo.svg new file mode 100644 index 00000000..d3ebf009 --- /dev/null +++ b/blueprints/collabora-office/logo.svg @@ -0,0 +1,162 @@ + +image/svg+xml + + + diff --git a/blueprints/collabora-office/template.toml b/blueprints/collabora-office/template.toml new file mode 100644 index 00000000..ab7e5b7f --- /dev/null +++ b/blueprints/collabora-office/template.toml @@ -0,0 +1,15 @@ +[variables] +DOMAIN = "${domain}" +USERNAME = "user" +PASSWORD = "${password:16}" + +[config] +[[config.domains]] +serviceName = "collabora" +port = 9980 +host = "${domain}" + +[config.env] +DOMAIN = "${DOMAIN}" +USERNAME = "${USERNAME}" +PASSWORD = "${PASSWORD}" \ No newline at end of file diff --git a/blueprints/commento/docker-compose.yml b/blueprints/commento/docker-compose.yml new file mode 100644 index 00000000..ebac8389 --- /dev/null +++ b/blueprints/commento/docker-compose.yml @@ -0,0 +1,22 @@ +version: "3" + +services: + commento: + image: registry.gitlab.com/commento/commento:v1.8.0 + ports: + - "8080" + environment: + - COMMENTO_ORIGIN=${COMMENTO_ORIGIN} + - COMMENTO_POSTGRES=${COMMENTO_POSTGRES} + depends_on: + - postgres + + postgres: + image: postgres:11 + environment: + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} + volumes: + - postgres-data:/var/lib/postgresql/data + +volumes: + postgres-data: \ No newline at end of file diff --git a/blueprints/commento/logo.png b/blueprints/commento/logo.png new file mode 100644 index 00000000..67f1c081 Binary files /dev/null and b/blueprints/commento/logo.png differ diff --git a/blueprints/commento/template.toml b/blueprints/commento/template.toml new file mode 100644 index 00000000..3c33845a --- /dev/null +++ b/blueprints/commento/template.toml @@ -0,0 +1,14 @@ +[variables] +DOMAIN = "${domain}" +POSTGRES_PASSWORD = "${password:16}" + +[config] +[[config.domains]] +serviceName = "commento" +port = 8080 +host = "${DOMAIN}" + +[config.env] +COMMENTO_ORIGIN = "http://${DOMAIN}" +COMMENTO_POSTGRES = "postgres://postgres:${POSTGRES_PASSWORD}@postgres:5432/postgres?sslmode=disable" +POSTGRES_PASSWORD = "${POSTGRES_PASSWORD}" \ No newline at end of file diff --git a/blueprints/commentoplusplus/docker-compose.yml b/blueprints/commentoplusplus/docker-compose.yml new file mode 100644 index 00000000..fc555f3a --- /dev/null +++ b/blueprints/commentoplusplus/docker-compose.yml @@ -0,0 +1,25 @@ +version: "3" + +services: + commentoplusplus: + image: caroga/commentoplusplus:v1.8.7 + ports: + - "8080" + environment: + - COMMENTO_ORIGIN=${COMMENTO_ORIGIN} + - COMMENTO_POSTGRES=${COMMENTO_POSTGRES} + - COMMENTO_ENABLE_WILDCARDS=true + depends_on: + - postgres + + postgres: + image: postgres:11 + environment: + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} + - POSTGRES_DB=${POSTGRES_DB} + - POSTGRES_USER=${POSTGRES_USER} + volumes: + - postgres-data:/var/lib/postgresql/data + +volumes: + postgres-data: \ No newline at end of file diff --git a/blueprints/commentoplusplus/logo.png b/blueprints/commentoplusplus/logo.png new file mode 100644 index 00000000..67f1c081 Binary files /dev/null and b/blueprints/commentoplusplus/logo.png differ diff --git a/blueprints/commentoplusplus/template.toml b/blueprints/commentoplusplus/template.toml new file mode 100644 index 00000000..e65d560f --- /dev/null +++ b/blueprints/commentoplusplus/template.toml @@ -0,0 +1,17 @@ +[variables] +DOMAIN = "${domain}" +POSTGRES_PASSWORD = "${password:16}" + +[config] +[[config.domains]] +serviceName = "commentoplusplus" +port = 8080 +host = "${DOMAIN}" + +[config.env] +COMMENTO_ORIGIN = "http://${DOMAIN}" +COMMENTO_POSTGRES = "postgres://postgres:${POSTGRES_PASSWORD}@postgres:5432/postgres?sslmode=disable" +COMMENTO_ENABLE_WILDCARDS = "true" +POSTGRES_PASSWORD = "${POSTGRES_PASSWORD}" +POSTGRES_DB = "postgres" +POSTGRES_USER = "postgres" diff --git a/blueprints/confluence/docker-compose.yml b/blueprints/confluence/docker-compose.yml new file mode 100644 index 00000000..3142cfe7 --- /dev/null +++ b/blueprints/confluence/docker-compose.yml @@ -0,0 +1,18 @@ +version: "3" + +services: + confluence: + image: atlassian/confluence-server:8.6-ubuntu-jdk17 + ports: + - "8090" + volumes: + - confluence-data:/var/atlassian/application-data/confluence + environment: + - JVM_MINIMUM_MEMORY=${JVM_MIN_MEM} + - JVM_MAXIMUM_MEMORY=${JVM_MAX_MEM} + - CATALINA_CONNECTOR_PROXYNAME=${DOMAIN} + - CATALINA_CONNECTOR_SCHEME=http + - CATALINA_CONNECTOR_SECURE=true + +volumes: + confluence-data: \ No newline at end of file diff --git a/blueprints/confluence/logo.svg b/blueprints/confluence/logo.svg new file mode 100644 index 00000000..22249e1f --- /dev/null +++ b/blueprints/confluence/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/blueprints/confluence/template.toml b/blueprints/confluence/template.toml new file mode 100644 index 00000000..7b13cfdf --- /dev/null +++ b/blueprints/confluence/template.toml @@ -0,0 +1,17 @@ +[variables] +DOMAIN = "${domain}" +JVM_MIN_MEM = "2048m" +JVM_MAX_MEM = "4096m" + +[config] +[[config.domains]] +serviceName = "confluence" +port = 8090 +host = "${DOMAIN}" + +[config.env] +JVM_MINIMUM_MEMORY = "${JVM_MIN_MEM}" +JVM_MAXIMUM_MEMORY = "${JVM_MAX_MEM}" +CATALINA_CONNECTOR_PROXYNAME = "${DOMAIN}" +CATALINA_CONNECTOR_SCHEME = "http" +CATALINA_CONNECTOR_SECURE = "true" \ No newline at end of file diff --git a/blueprints/coralproject/docker-compose.yml b/blueprints/coralproject/docker-compose.yml new file mode 100644 index 00000000..f308098d --- /dev/null +++ b/blueprints/coralproject/docker-compose.yml @@ -0,0 +1,33 @@ +version: "3" + +services: + coral: + image: coralproject/talk:9.7.0 + ports: + - "3000" + environment: + - MONGODB_URI=${MONGODB_URI} + - REDIS_URI=${REDIS_URI} + - SIGNING_SECRET=${SIGNING_SECRET} + - NODE_ENV=production + depends_on: + - mongo + - redis + + mongo: + image: mongo:4 + environment: + - MONGO_INITDB_ROOT_PASSWORD=${MONGO_PASSWORD} + - MONGO_INITDB_ROOT_USERNAME=${MONGO_USER} + volumes: + - mongo-data:/data/db + + redis: + image: redis:6 + command: redis-server --requirepass ${REDIS_PASSWORD} + volumes: + - redis-data:/data + +volumes: + mongo-data: + redis-data: \ No newline at end of file diff --git a/blueprints/coralproject/logo.png b/blueprints/coralproject/logo.png new file mode 100644 index 00000000..8ef17ebb Binary files /dev/null and b/blueprints/coralproject/logo.png differ diff --git a/blueprints/coralproject/template.toml b/blueprints/coralproject/template.toml new file mode 100644 index 00000000..2c6501f3 --- /dev/null +++ b/blueprints/coralproject/template.toml @@ -0,0 +1,20 @@ +[variables] +DOMAIN = "${domain}" +MONGO_PASSWORD = "${password:16}" +REDIS_PASSWORD = "${password:16}" +SIGNING_SECRET = "${password:45}" + +[config] +[[config.domains]] +serviceName = "coral" +port = 3000 +host = "${DOMAIN}" + +[config.env] +MONGODB_URI = "mongodb://mongo:${MONGO_PASSWORD}@mongo:27017" +REDIS_URI = "redis://default:${REDIS_PASSWORD}@redis:6379" +SIGNING_SECRET = "${SIGNING_SECRET}" +NODE_ENV = "production" +MONGO_PASSWORD = "${MONGO_PASSWORD}" +REDIS_PASSWORD = "${REDIS_PASSWORD}" +MONGO_USER = "mongo" \ No newline at end of file diff --git a/meta.json b/meta.json index 8fca5f20..18d0203d 100644 --- a/meta.json +++ b/meta.json @@ -1892,5 +1892,662 @@ "postgres", "admin" ] + }, + { + "id": "ackee", + "name": "Ackee", + "version": "latest", + "description": "Ackee is a self-hosted analytics tool for your website.", + "logo": "logo.png", + "links": { + "github": "https://github.com/electerious/Ackee", + "website": "https://ackee.electerious.com/", + "docs": "https://docs.ackee.electerious.com/" + }, + "tags": [ + "analytics", + "self-hosted" + ] + }, + { + "id": "adguardhome", + "name": "AdGuard Home", + "version": "latest", + "description": "AdGuard Home is a comprehensive solution designed to enhance your online browsing experience by eliminating all kinds of ads, from annoying banners and pop-ups to intrusive video ads. It provides privacy protection, browsing security, and parental control features while maintaining website functionality.", + "logo": "logo.svg", + "links": { + "github": "https://github.com/AdguardTeam/AdGuardHome", + "website": "https://adguard.com", + "docs": "https://github.com/AdguardTeam/AdGuardHome/wiki" + }, + "tags": [ + "privacy", + "security", + "dns", + "ad-blocking" + ] + }, + { + "id": "adminer", + "name": "Adminer", + "version": "4.8.1", + "description": "Adminer is a comprehensive database management tool that supports MySQL, MariaDB, PostgreSQL, SQLite, MS SQL, Oracle, Elasticsearch, MongoDB and others. It provides a clean interface for efficient database operations, with strong security features and extensive customization options.", + "logo": "logo.svg", + "links": { + "github": "https://github.com/vrana/adminer", + "website": "https://www.adminer.org/", + "docs": "https://www.adminer.org/en/plugins/" + }, + "tags": [ + "databases", + "developer-tools", + "mysql", + "postgresql" + ] + }, + { + "id": "affinepro", + "name": "Affine Pro", + "version": "stable-780dd83", + "description": "Affine Pro is a modern, self-hosted platform designed for collaborative content creation and project management. It offers an intuitive interface, seamless real-time collaboration, and powerful tools for organizing tasks, notes, and ideas.", + "logo": "logo.png", + "links": { + "github": "https://github.com/toeverything/Affine", + "website": "https://affine.pro/", + "docs": "https://affine.pro/docs" + }, + "tags": [ + "collaboration", + "self-hosted", + "productivity", + "project-management" + ] + }, + { + "id": "alltube", + "name": "AllTube", + "version": "latest", + "description": "AllTube Download is an application designed to facilitate the downloading of videos from YouTube and other video sites. It provides an HTML GUI for youtube-dl with video conversion capabilities and JSON API support.", + "logo": "logo.png", + "links": { + "github": "https://github.com/Rudloff/alltube", + "website": "https://github.com/Rudloff/alltube", + "docs": "https://github.com/Rudloff/alltube/wiki" + }, + "tags": [ + "media", + "video", + "downloader" + ] + }, + { + "id": "ampache", + "name": "Ampache", + "version": "latest", + "description": "Ampache is a web-based audio/video streaming application and file manager allowing you to access your music & videos from anywhere, using almost any internet enabled device.", + "logo": "logo.png", + "links": { + "github": "https://github.com/ampache/ampache", + "website": "http://ampache.org/", + "docs": "https://github.com/ampache/ampache/wiki" + }, + "tags": [ + "media", + "music", + "streaming" + ] + }, + { + "id": "anythingllm", + "name": "AnythingLLM", + "version": "latest", + "description": "AnythingLLM is a private, self-hosted, and local document chatbot platform that allows you to chat with your documents using various LLM providers.", + "logo": "logo.png", + "links": { + "github": "https://github.com/Mintplex-Labs/anything-llm", + "website": "https://useanything.com", + "docs": "https://github.com/Mintplex-Labs/anything-llm/tree/master/docs" + }, + "tags": [ + "ai", + "llm", + "chatbot" + ] + }, + { + "id": "apprise-api", + "name": "Apprise API", + "version": "latest", + "description": "Apprise API provides a simple interface for sending notifications to almost all of the most popular notification services available to us today.", + "logo": "logo.png", + "links": { + "github": "https://github.com/caronc/apprise-api", + "website": "https://github.com/caronc/apprise-api", + "docs": "https://github.com/caronc/apprise-api/wiki" + }, + "tags": [ + "notifications", + "api" + ] + }, + { + "id": "arangodb", + "name": "ArangoDB", + "version": "latest", + "description": "ArangoDB is a native multi-model database with flexible data models for documents, graphs, and key-values. Build high performance applications using a convenient SQL-like query language or JavaScript extensions.", + "logo": "logo.png", + "links": { + "github": "https://github.com/arangodb/arangodb", + "website": "https://www.arangodb.com/", + "docs": "https://www.arangodb.com/docs/" + }, + "tags": [ + "database", + "graph-database", + "nosql" + ] + }, + { + "id": "anonupload", + "name": "AnonUpload", + "version": "1", + "description": "AnonUpload is a secure, anonymous file sharing application that does not require a database. It is built with privacy as a priority, ensuring that the direct filename used is not displayed.", + "logo": "logo.png", + "links": { + "github": "https://github.com/supernova3339/anonupload", + "docs": "https://github.com/Supernova3339/anonupload/blob/main/env.md" + }, + "tags": [ + "file-sharing", + "privacy" + ] + }, + { + "id": "argilla", + "name": "Argilla", + "version": "latest", + "description": "Argilla is a robust platform designed to help engineers and data scientists streamline the management of machine learning data workflows. It simplifies tasks like data labeling, annotation, and quality control.", + "logo": "logo.svg", + "links": { + "github": "https://github.com/argilla-io/argilla", + "website": "https://www.argilla.io/", + "docs": "https://docs.argilla.io/" + }, + "tags": [ + "machine-learning", + "data-labeling", + "ai" + ] + }, + { + "id": "audiobookshelf", + "name": "Audiobookshelf", + "version": "2.19.4", + "description": "Audiobookshelf is a self-hosted server designed to manage and play your audiobooks and podcasts. It works best when you have an organized directory structure.", + "logo": "logo.png", + "links": { + "github": "https://github.com/advplyr/audiobookshelf", + "website": "https://www.audiobookshelf.org", + "docs": "https://www.audiobookshelf.org/docs" + }, + "tags": [ + "media", + "audiobooks", + "podcasts" + ] + }, + { + "id": "authorizer", + "name": "Authorizer", + "version": "1.4.4", + "description": "Authorizer is a powerful tool designed to simplify the process of user authentication and authorization in your applications. It allows you to build secure apps 10x faster with its low code tool and low-cost deployment.", + "logo": "logo.png", + "links": { + "github": "https://github.com/authorizerdev/authorizer", + "website": "https://authorizer.dev", + "docs": "https://docs.authorizer.dev/" + }, + "tags": [ + "authentication", + "authorization", + "security" + ] + }, + { + "id": "automatisch", + "name": "Automatisch", + "version": "2.0", + "description": "Automatisch is a powerful, self-hosted workflow automation tool designed for connecting your apps and automating repetitive tasks. With Automatisch, you can create workflows to sync data, send notifications, and perform various actions seamlessly across different services.", + "logo": "logo.png", + "links": { + "github": "https://github.com/automatisch/automatisch", + "website": "https://automatisch.io/docs", + "docs": "https://automatisch.io/docs" + }, + "tags": [ + "automation", + "workflow", + "integration" + ] + }, + { + "id": "babybuddy", + "name": "BabyBuddy", + "version": "2.7.0", + "description": "BabyBuddy is a comprehensive, user-friendly platform designed to help parents and caregivers manage essential details about their child's growth and development. It provides tools for tracking feedings, sleep schedules, diaper changes, and milestones.", + "logo": "logo.png", + "links": { + "github": "https://github.com/babybuddy/babybuddy", + "website": "https://babybuddy.app", + "docs": "https://docs.babybuddy.app" + }, + "tags": [ + "parenting", + "tracking", + "family" + ] + }, + { + "id": "baikal", + "name": "Baikal", + "version": "nginx-php8.2", + "description": "Baikal is a lightweight, self-hosted CalDAV and CardDAV server that enables users to manage calendars and contacts efficiently. It provides a simple and effective solution for syncing and sharing events, tasks, and address books across multiple devices.", + "logo": "logo.png", + "links": { + "website": "https://sabre.io/baikal/", + "docs": "https://sabre.io/baikal/install/" + }, + "tags": [ + "calendar", + "contacts", + "caldav", + "carddav" + ] + }, + { + "id": "barrage", + "name": "Barrage", + "version": "0.3.0", + "description": "Barrage is a minimalistic Deluge WebUI app with full mobile support. It features a responsive mobile-first design, allowing you to manage your torrents with ease from any device.", + "logo": "logo.png", + "links": { + "github": "https://github.com/maulik9898/barrage" + }, + "tags": [ + "torrents", + "deluge", + "mobile" + ] + }, + { + "id": "bazarr", + "name": "Bazarr", + "version": "latest", + "description": "Bazarr is a companion application to Sonarr and Radarr that manages and downloads subtitles based on your requirements.", + "logo": "logo.png", + "links": { + "github": "https://github.com/morpheus65535/bazarr", + "website": "https://www.bazarr.media/", + "docs": "https://www.bazarr.media/docs" + }, + "tags": [ + "subtitles", + "sonarr", + "radarr" + ] + }, + { + "id":"beszel", + "name": "Beszel", + "version": "0.9.1", + "description": "A lightweight server monitoring hub with historical data, docker stats, and alerts.", + "logo": "logo.svg", + "links": { + "github": "https://github.com/henrygd/beszel", + "website": "https://beszel.app", + "docs": "https://beszel.app/docs" + }, + "tags": [ + "monitoring", + "docker", + "alerts" + ] + }, + { + "id": "bytestash", + "name": "ByteStash", + "version": "latest", + "description": "ByteStash is a self-hosted file storage solution that allows you to store and share files with ease. It provides a simple and effective solution for storing and accessing files from anywhere.", + "logo": "logo.png", + "links": { + "github": "https://github.com/bytestash/bytestash", + "website": "https://bytestash.com", + "docs": "https://bytestash.com/docs" + }, + "tags": [ + "file-storage", + "self-hosted" + ] + }, + { + "id": "bookstack", + "name": "BookStack", + "version": "24.12.1", + "description": "BookStack is a self-hosted platform for creating beautiful, feature-rich documentation sites.", + "logo": "logo.svg", + "links": { + "github": "https://github.com/BookStackApp/BookStack", + "website": "https://www.bookstackapp.com", + "docs": "https://www.bookstackapp.com/docs" + }, + "tags": [ + "documentation", + "self-hosted" + ] + }, + { + "id":"bytebase", + "name": "Bytebase", + "version": "latest", + "description": "Bytebase is a database management tool that allows you to manage your databases with ease. It provides a simple and effective solution for managing your databases from anywhere.", + "logo": "image.png", + "links": { + "github": "https://github.com/bytebase/bytebase", + "website": "https://www.bytebase.com", + "docs": "https://www.bytebase.com/docs" + }, + "tags": [ + "database", + "self-hosted" + ] + }, + { + "id":"botpress", + "name": "Botpress", + "version": "latest", + "description": "Botpress is a platform for building conversational AI agents. It provides a simple and effective solution for building conversational AI agents from anywhere.", + "logo": "logo.png", + "links": { + "github": "https://github.com/botpress/botpress", + "website": "https://botpress.com", + "docs": "https://botpress.com/docs" + }, + "tags": [ + "ai", + "self-hosted" + ] + }, + { + "id": "calibre", + "name": "Calibre", + "version": "7.26.0", + "description": "Calibre is a comprehensive e-book management tool designed to organize, convert, and read your e-book collection. It supports most of the major e-book formats and is compatible with various e-book reader devices.", + "logo": "logo.png", + "links": { + "github": "https://github.com/kovidgoyal/calibre", + "website": "https://calibre-ebook.com/", + "docs": "https://manual.calibre-ebook.com/" + }, + "tags": [ + "Documents", + "E-Commerce" + ] + }, + { + "id": "carbone", + "name": "Carbone", + "version": "4.25.5", + "description": "Carbone is a high-performance, self-hosted document generation engine. It allows you to generate reports, invoices, and documents in various formats (e.g., PDF, DOCX, XLSX) using JSON data and template-based rendering.", + "logo": "logo.png", + "links": { + "github": "https://github.com/carboneio/carbone", + "website": "https://carbone.io/", + "docs": "https://carbone.io/documentation/design/overview/getting-started.html" + }, + "tags": [ + "Document Generation", + "Automation", + "Reporting", + "Productivity" + ] + }, + { + "id": "changedetection", + "name": "Change Detection", + "version": "0.49", + "description": "Changedetection.io is an intelligent tool designed to monitor changes on websites. Perfect for smart shoppers, data journalists, research engineers, data scientists, and security researchers.", + "logo": "logo.png", + "links": { + "github": "https://github.com/dgtlmoon/changedetection.io", + "website": "https://changedetection.io", + "docs": "https://github.com/dgtlmoon/changedetection.io/wiki" + }, + "tags": [ + "Monitoring", + "Data", + "Notifications" + ] + }, + { + "id": "chevereto", + "name": "Chevereto", + "version": "4", + "description": "Chevereto is a powerful, self-hosted image and video hosting platform designed for individuals, communities, and businesses. It allows users to upload, organize, and share media effortlessly.", + "logo": "logo.png", + "links": { + "github": "https://github.com/chevereto/chevereto", + "website": "https://chevereto.com/", + "docs": "https://v4-docs.chevereto.com/" + }, + "tags": [ + "Image Hosting", + "File Management", + "Open Source", + "Multi-User", + "Private Albums" + ] + }, + { + "id": "chiefonboarding", + "name": "Chief-Onboarding", + "version": "v2.2.5", + "description": "Chief-Onboarding is a comprehensive, self-hosted onboarding and employee management platform designed for businesses to streamline their onboarding processes.", + "logo": "logo.png", + "links": { + "github": "https://github.com/chiefonboarding/chiefonboarding", + "website": "https://demo.chiefonboarding.com/", + "docs": "https://docs.chiefonboarding.com/" + }, + "tags": [ + "Employee Onboarding", + "HR Management", + "Task Tracking", + "Role-Based Access", + "Document Management" + ] + }, + { + "id": "classicpress", + "name": "ClassicPress", + "version": "php8.3-apache", + "description": "ClassicPress is a community-led open source content management system for creators. It is a fork of WordPress 6.2 that preserves the TinyMCE classic editor as the default option.", + "logo": "logo.png", + "links": { + "github": "https://github.com/ClassicPress/", + "website": "https://www.classicpress.net/", + "docs": "https://docs.classicpress.net/" + }, + "tags": [ + "cms", + "wordpress", + "content-management" + ] + }, + { + "id": "cloud9", + "name": "Cloud9", + "version": "1.29.2", + "description": "Cloud9 is a cloud-based integrated development environment (IDE) designed for developers to code, build, and debug applications collaboratively in real time.", + "logo": "logo.png", + "links": { + "github": "https://github.com/c9", + "website": "https://aws.amazon.com/cloud9/", + "docs": "https://docs.aws.amazon.com/cloud9/" + }, + "tags": [ + "ide", + "development", + "cloud" + ] + }, + { + "id": "cloudcommander", + "name": "Cloud Commander", + "version": "18.5.1", + "description": "Cloud Commander is a file manager for the web. It includes a command-line console and a text editor. Cloud Commander helps you manage your server and work with files, directories and programs in a web browser.", + "logo": "logo.png", + "links": { + "github": "https://github.com/coderaiser/cloudcmd", + "website": "https://cloudcmd.io", + "docs": "https://cloudcmd.io/#install" + }, + "tags": [ + "file-manager", + "web-based", + "console" + ] + }, + { + "id": "cockpit", + "name": "Cockpit", + "version": "core-2.11.0", + "description": "Cockpit is a headless content platform designed to streamline the creation, connection, and delivery of content for creators, marketers, and developers. It is built with an API-first approach, enabling limitless digital solutions.", + "logo": "logo.png", + "links": { + "github": "https://github.com/Cockpit-HQ", + "website": "https://getcockpit.com", + "docs": "https://getcockpit.com/documentation" + }, + "tags": [ + "cms", + "content-management", + "api" + ] + }, + { + "id": "chromium", + "name": "Chromium", + "version": "5f5dd27e-ls102", + "description": "Chromium is an open-source browser project that is designed to provide a safer, faster, and more stable way for all users to experience the web in a containerized environment.", + "logo": "logo.png", + "links": { + "github": "https://github.com/linuxserver/docker-chromium", + "docs": "https://docs.linuxserver.io/images/docker-chromium" + }, + "tags": [ + "browser", + "development", + "web" + ] + }, + { + "id": "codex-docs", + "name": "CodeX Docs", + "version": "v2.2", + "description": "CodeX is a comprehensive platform that brings together passionate engineers, designers, and specialists to create high-quality open-source projects. It includes Editor.js, Hawk.so, CodeX Notes, and more.", + "logo": "logo.svg", + "links": { + "github": "https://github.com/codex-team/codex.docs", + "website": "https://codex.so", + "docs": "https://docs.codex.so" + }, + "tags": [ + "documentation", + "development", + "collaboration" + ] + }, + { + "id": "collabora-office", + "name": "Collabora Office", + "version": "latest", + "description": "Collabora Online is a powerful, flexible, and secure online office suite designed to break free from vendor lock-in and put you in full control of your documents.", + "logo": "logo.svg", + "links": { + "github": "https://github.com/CollaboraOnline", + "website": "https://collaboraonline.com", + "docs": "https://sdk.collaboraonline.com/docs" + }, + "tags": [ + "office", + "documents", + "collaboration" + ] + }, + { + "id": "confluence", + "name": "Confluence", + "version": "8.6", + "description": "Confluence is a powerful team collaboration and knowledge-sharing tool. It allows you to create, organize, and collaborate on content in a centralized space. Designed for project management, documentation, and team communication, Confluence helps streamline workflows and enhances productivity.", + "links": { + "website": "https://confluence.atlassian.com", + "docs": "https://confluence.atlassian.com/doc/confluence-documentation-135922.html" + }, + "logo": "logo.svg", + "tags": [ + "collaboration", + "documentation", + "productivity", + "project-management" + ] + }, + { + "id": "commento", + "name": "Commento", + "version": "v1.8.0", + "description": "Commento is a comments widget designed to enhance the interaction on your website. It allows your readers to contribute to the discussion by upvoting comments that add value and downvoting those that don't. The widget supports markdown formatting and provides moderation tools to manage conversations.", + "links": { + "website": "https://commento.io/", + "docs": "https://commento.io/", + "gitlab": "https://gitlab.com/commento/commento" + }, + "logo": "logo.png", + "tags": [ + "comments", + "discussion", + "website" + ] + }, + { + "id": "commentoplusplus", + "name": "Commento++", + "version": "v1.8.7", + "description": "Commento++ is a free, open-source application designed to provide a fast, lightweight comments box that you can embed in your static website. It offers features like Markdown support, Disqus import, voting, automated spam detection, moderation tools, sticky comments, thread locking, and OAuth login.", + "links": { + "github": "https://github.com/souramoo/commentoplusplus" + }, + "logo": "logo.png", + "tags": [ + "comments", + "website", + "open-source" + ] + }, + { + "id": "coralproject", + "name": "Coral", + "version": "9.7.0", + "description": "Coral is a revolutionary commenting platform designed to enhance website interactions. It features smart technology for meaningful discussions, journalist identification, moderation tools with AI support, and complete data control without ads or trackers. Used by major news sites worldwide.", + "links": { + "website": "https://coralproject.net/", + "docs": "https://docs.coralproject.net/", + "github": "https://github.com/coralproject/talk" + }, + "logo": "logo.png", + "tags": [ + "communication", + "community", + "privacy" + ] } ] \ No newline at end of file