mirror of
https://github.com/lissy93/portainer-templates.git
synced 2026-11-04 09:15:08 +00:00
Merge pull request #152 from GeiserX/lynxprompt-smtp-https
LynxPrompt: fix the stack so people can sign in
This commit is contained in:
2 files changed
+92
-43
No files matched your search
@@ -45,28 +45,63 @@
|
||||
"description": "Self-hostable AI config management platform for AGENTS.md, CLAUDE.md, Cursor rules, and 30+ AI assistant formats. Source: https://github.com/GeiserX/LynxPrompt",
|
||||
"env": [
|
||||
{
|
||||
"default": "",
|
||||
"label": "Session secret \u2014 generate with: openssl rand -base64 32",
|
||||
"description": "Generate with: openssl rand -hex 32",
|
||||
"label": "Session secret (required)",
|
||||
"name": "NEXTAUTH_SECRET"
|
||||
},
|
||||
{
|
||||
"default": "http://localhost:3000",
|
||||
"label": "Public base URL",
|
||||
"description": "Generate with: openssl rand -hex 24",
|
||||
"label": "Database password (required)",
|
||||
"name": "DB_PASSWORD"
|
||||
},
|
||||
{
|
||||
"description": "Such as http://192.168.1.10:3000 or https://lynxprompt.example.com",
|
||||
"label": "Address you open it on (required)",
|
||||
"name": "APP_URL"
|
||||
},
|
||||
{
|
||||
"description": "Sign-in is a link sent by mail",
|
||||
"label": "SMTP server (required)",
|
||||
"name": "SMTP_HOST"
|
||||
},
|
||||
{
|
||||
"description": "From address of the sign-in mails",
|
||||
"label": "Sender address (required)",
|
||||
"name": "SMTP_FROM"
|
||||
},
|
||||
{
|
||||
"default": "587",
|
||||
"description": "465 uses TLS",
|
||||
"label": "SMTP port",
|
||||
"name": "SMTP_PORT"
|
||||
},
|
||||
{
|
||||
"default": "",
|
||||
"label": "Super-admin account email",
|
||||
"description": "Leave empty if the server needs no login",
|
||||
"label": "SMTP user",
|
||||
"name": "SMTP_USER"
|
||||
},
|
||||
{
|
||||
"default": "",
|
||||
"label": "SMTP password",
|
||||
"name": "SMTP_PASSWORD"
|
||||
},
|
||||
{
|
||||
"default": "",
|
||||
"description": "This address becomes super-admin on its first sign-in",
|
||||
"label": "Super-admin email",
|
||||
"name": "SUPERADMIN_EMAIL"
|
||||
}
|
||||
],
|
||||
"logo": "https://avatars.githubusercontent.com/u/9169332",
|
||||
"name": "lynxprompt",
|
||||
"note": "LynxPrompt listens on port 3000 and keeps its database in the pgdata volume and uploaded images in the uploads volume. Sign-in is a link sent by mail, so fill in the SMTP fields, and set APP_URL to the address you open it on. Generate the secrets with openssl rand -hex 32 and openssl rand -hex 24. All options: https://github.com/GeiserX/LynxPrompt/blob/main/env.example",
|
||||
"platform": "linux",
|
||||
"repository": {
|
||||
"stackfile": "sources/stacks/lynxprompt.yml",
|
||||
"url": "https://github.com/lissy93/portainer-templates"
|
||||
},
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "LynxPrompt",
|
||||
"type": 3
|
||||
}
|
||||
|
||||
@@ -1,46 +1,60 @@
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:18-alpine
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
# Postgres 18 refuses a mount at /var/lib/postgresql/data.
|
||||
- pgdata:/var/lib/postgresql
|
||||
environment:
|
||||
POSTGRES_DB: lynxprompt
|
||||
POSTGRES_USER: lynxprompt
|
||||
POSTGRES_PASSWORD: ${DB_PASSWORD:?DB_PASSWORD must be set}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U lynxprompt -d lynxprompt"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
lynxprompt:
|
||||
image: drumsergio/lynxprompt:2.1.0
|
||||
image: drumsergio/lynxprompt:2.1.40
|
||||
platform: linux/amd64
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "3000:3000"
|
||||
environment:
|
||||
- NEXTAUTH_SECRET=${NEXTAUTH_SECRET}
|
||||
- APP_URL=${APP_URL:-http://localhost:3000}
|
||||
- NEXTAUTH_URL=${APP_URL:-http://localhost:3000}
|
||||
- SUPERADMIN_EMAIL=${SUPERADMIN_EMAIL:-}
|
||||
- DB_PASSWORD=lynxprompt
|
||||
- DB_APP_HOST=postgres
|
||||
- DB_APP_USER=lynxprompt
|
||||
- DB_APP_PASSWORD=lynxprompt
|
||||
- DB_APP_NAME=lynxprompt
|
||||
- DB_USERS_HOST=postgres
|
||||
- DB_USERS_USER=lynxprompt
|
||||
- DB_USERS_PASSWORD=lynxprompt
|
||||
- DB_USERS_NAME=lynxprompt
|
||||
- DB_BLOG_HOST=postgres
|
||||
- DB_BLOG_USER=lynxprompt
|
||||
- DB_BLOG_PASSWORD=lynxprompt
|
||||
- DB_BLOG_NAME=lynxprompt
|
||||
- DB_SUPPORT_HOST=postgres
|
||||
- DB_SUPPORT_USER=lynxprompt
|
||||
- DB_SUPPORT_PASSWORD=lynxprompt
|
||||
- DB_SUPPORT_NAME=lynxprompt
|
||||
- ENABLE_USER_REGISTRATION=true
|
||||
- ENABLE_EMAIL_AUTH=true
|
||||
- ENABLE_PASSKEYS=true
|
||||
depends_on:
|
||||
- postgres
|
||||
|
||||
postgres:
|
||||
image: postgres:17-alpine
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- POSTGRES_DB=lynxprompt
|
||||
- POSTGRES_USER=lynxprompt
|
||||
- POSTGRES_PASSWORD=lynxprompt
|
||||
volumes:
|
||||
- postgres-data:/var/lib/postgresql/data
|
||||
- uploads:/data/uploads
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
# One database per Prisma schema; the app creates the other three on first start.
|
||||
DB_APP_HOST: postgres
|
||||
DB_APP_USER: lynxprompt
|
||||
DB_APP_PASSWORD: ${DB_PASSWORD}
|
||||
DB_APP_NAME: lynxprompt
|
||||
DB_USERS_HOST: postgres
|
||||
DB_USERS_USER: lynxprompt
|
||||
DB_USERS_PASSWORD: ${DB_PASSWORD}
|
||||
DB_USERS_NAME: lynxprompt_users
|
||||
DB_BLOG_HOST: postgres
|
||||
DB_BLOG_USER: lynxprompt
|
||||
DB_BLOG_PASSWORD: ${DB_PASSWORD}
|
||||
DB_BLOG_NAME: lynxprompt_blog
|
||||
DB_SUPPORT_HOST: postgres
|
||||
DB_SUPPORT_USER: lynxprompt
|
||||
DB_SUPPORT_PASSWORD: ${DB_PASSWORD}
|
||||
DB_SUPPORT_NAME: lynxprompt_support
|
||||
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET:?NEXTAUTH_SECRET must be set}
|
||||
NEXTAUTH_URL: ${APP_URL:?APP_URL must be set}
|
||||
APP_URL: ${APP_URL:?APP_URL must be set}
|
||||
SUPERADMIN_EMAIL: ${SUPERADMIN_EMAIL:-}
|
||||
# Sign-in is a link sent by mail, so SMTP is needed to log in.
|
||||
SMTP_HOST: ${SMTP_HOST:?SMTP_HOST must be set}
|
||||
SMTP_PORT: ${SMTP_PORT:-587}
|
||||
SMTP_USER: ${SMTP_USER:-}
|
||||
SMTP_PASSWORD: ${SMTP_PASSWORD:-}
|
||||
SMTP_FROM: ${SMTP_FROM:?SMTP_FROM must be set}
|
||||
|
||||
volumes:
|
||||
postgres-data:
|
||||
pgdata:
|
||||
uploads:
|
||||
Reference in new issue
Block a user