Deploy Memory
Deploy and Host Memory with Railway
xberg
Just deployed
postgres
Just deployed
/var/lib/postgresql/data
zitadel
Just deployed
/data
memory-web-ui
Just deployed
memory-server
Just deployed
/data
memory-documents
Bucket
Just deployed
Deploy and Host Memory with Railway
Memory is a self-hosted knowledge graph and memory service for AI agents and teams. This template provisions the full stack with Railway.
About Hosting Memory
The template creates five services and a Railway bucket: Postgres with pgvector, xberg for document extraction, Zitadel for authentication, the Memory API/MCP server, and the Memory web UI. After deployment, a short one-time Zitadel bootstrap connects the server and web UI.
Why Deploy Memory
Deploy Memory on Railway to get a managed Postgres database, private service networking, public HTTPS domains, persistent volumes and a reproducible full-stack deployment without running your own Kubernetes cluster.
Common Use Cases
- Give AI agents persistent memory and a queryable knowledge graph
- Search and organize documents, notes and research
- Run a private MCP server for coding agents
- Host a team knowledge base with authenticated web access
Dependencies for Memory Hosting
Memory needs Postgres with the pgvector extension, an S3-compatible document store, an OIDC provider, and the Memory server and web UI images.
Deployment Dependencies
pgvector/pgvector:pg18-trixieghcr.io/xberg-io/xberg:1.3.0ghcr.io/zitadel/zitadel:v4.17.3ghcr.io/emergent-company/memory-server:0.96.0ghcr.io/emergent-company/memory-web-ui:0.96.0
Configure your AI provider in Memory after deployment. AI credentials are not baked into the template.
Template Content
PORT
RUST_LOG
postgres
pgvector/pgvector:pg18-trixiePGDATA
POSTGRES_DB
POSTGRES_USER
POSTGRES_PASSWORD
RAILWAY_SHM_SIZE_BYTES
ZITADEL_LOG_LEVEL
ZITADEL_MASTERKEY
ZITADEL_TLS_ENABLED
ZITADEL_EXTERNALPORT
ZITADEL_EXTERNALDOMAIN
ZITADEL_EXTERNALSECURE
ZITADEL_FIRSTINSTANCE_PATPATH
ZITADEL_DATABASE_POSTGRES_PORT
ZITADEL_FIRSTINSTANCE_ORG_NAME
ZITADEL_DATABASE_POSTGRES_DATABASE
ZITADEL_DATABASE_POSTGRES_USER_PASSWORD
ZITADEL_DATABASE_POSTGRES_USER_SSL_MODE
ZITADEL_DATABASE_POSTGRES_USER_USERNAME
ZITADEL_DATABASE_POSTGRES_ADMIN_SSL_MODE
ZITADEL_DATABASE_POSTGRES_ADMIN_USERNAME
ZITADEL_FIRSTINSTANCE_ORG_HUMAN_PASSWORD
ZITADEL_FIRSTINSTANCE_ORG_HUMAN_USERNAME
ZITADEL_FIRSTINSTANCE_ORG_MACHINE_MACHINE_NAME
ZITADEL_DEFAULTINSTANCE_FEATURES_LOGINV2_REQUIRED
ZITADEL_FIRSTINSTANCE_ORG_MACHINE_MACHINE_USERNAME
ZITADEL_FIRSTINSTANCE_ORG_MACHINE_PAT_EXPIRATIONDATE
ZITADEL_FIRSTINSTANCE_ORG_HUMAN_PASSWORDCHANGEREQUIRED
ZITADEL_SYSTEMDEFAULTS_DOMAINPOLICY_SMTPSENDERADDRESSMATCHESINSTANCEDOMAIN
memory-web-ui
ghcr.io/emergent-company/memory-web-ui:0.96.0PORT
AUTH_MODE
MEMORY_URL
MEMORY_PORT
SESSION_SECRET
ZITADEL_ISSUER
PUBLIC_BASE_URL
VOICE_SUPPORTED
SHARE_REF_SECRET
MEMORY_PUBLIC_URL
ZITADEL_CLIENT_ID
SENTRY_ENVIRONMENT
SHARE_COOKIE_SECRET
ZITADEL_REDIRECT_URI
memory-server
ghcr.io/emergent-company/memory-server:0.96.0PORT
APP_URL
WEB_UI_URL
ENVIRONMENT
POSTGRES_DB
SERVER_PORT
POSTGRES_PORT
POSTGRES_USER
XBERG_ENABLED
MCP_PUBLIC_URL
SERVER_ADDRESS
STORAGE_REGION
ZITADEL_DOMAIN
ZITADEL_ISSUER
STORAGE_USE_SSL
WHISPER_ENABLED
FEEDBACK_ENABLED
SHARE_REF_SECRET
STORAGE_ENDPOINT
STORAGE_PROVIDER
POSTGRES_SSL_MODE
ZITADEL_ADMIN_PAT
LLM_ENCRYPTION_KEY
STORAGE_ACCESS_KEY
STORAGE_SECRET_KEY
ZITADEL_CLIENT_JWT
ZITADEL_PROJECT_ID
STORAGE_BUCKET_TEMP
ZITADEL_MAIN_ORG_ID
STORAGE_BUCKET_DOCUMENTS
memory-documents
Bucket

