Railway

Deploy Teedy | Open-Source Document Management

Self-host Teedy document management with OCR, AES-256 encryption & more

Deploy Teedy | Open-Source Document Management

Just deployed

/data

/var/lib/postgresql/data

Teedy logo

Deploy and Host Teedy on Railway

Deploy Teedy on Railway to get a production-ready, self-hosted document management system with built-in OCR, full-text search, and encrypted file storage. Self-host Teedy with zero infrastructure headaches — this template pre-configures a Teedy application server backed by a PostgreSQL database, with a persistent volume for document storage and Lucene search indexes.

Getting Started with Teedy on Railway

Once your Teedy deployment is live, open the public URL in your browser. Log in with the admin credentials configured during deployment (email and bcrypt-hashed password set via DOCS_ADMIN_EMAIL_INIT and DOCS_ADMIN_PASSWORD_INIT). If no custom credentials were set, the default login is admin / admin — change this immediately from Settings → User Account.

Your first action should be creating tags to organize documents. Navigate to Settings → Tags and set up a hierarchy (e.g., Invoices → 2026, Contracts → Clients). Then upload your first document — Teedy automatically runs OCR on images and PDFs, making them full-text searchable within seconds. Set up user accounts and groups under Settings → Users to control who can view, edit, or manage specific documents.

About Hosting Teedy

Teedy (formerly Sismics Docs) is an open-source, lightweight document management system built with Java and Jetty. It solves the problem of organizing, searching, and securing digital documents for individuals and small teams without requiring expensive enterprise software.

Key features of self-hosted Teedy include:

  • Built-in OCR with Tesseract 4 — full-text search across scanned images, PDFs, DOCX, ODT, and TXT
  • 256-bit AES encryption for all stored files at rest
  • Document workflows with multi-step verification and approval chains
  • LDAP authentication and two-factor authentication (2FA)
  • Hierarchical tag system with Dublin Core and custom metadata
  • File versioning with full change history
  • User/group permissions with storage quotas and audit logging
  • RESTful API and webhooks for programmatic access and automation

The Railway template deploys two services: the Teedy application container (sismics/docs:v1.11) and a PostgreSQL database for persistent metadata storage. Document files and Lucene search indexes are stored on an attached volume at /data.

Why Deploy Teedy on Railway

  • One-click deploy with PostgreSQL and persistent storage pre-configured
  • No Docker, Kubernetes, or server management required
  • Automatic TLS/HTTPS on your public domain
  • Scale resources up or down from the Railway dashboard
  • Built-in logging and deployment rollbacks

Common Use Cases for Self-Hosted Teedy

  • Small business document archiving — digitize invoices, contracts, and receipts with OCR-powered full-text search across scanned documents
  • Expense management workflows — employees upload receipts, managers review and approve via built-in document workflows
  • Compliance and audit trails — AES-256 encryption, versioning, and granular permissions for regulated industries requiring document traceability
  • Personal knowledge base — organize research papers, manuals, and reference materials with hierarchical tags and metadata

Dependencies for Teedy on Railway

  • Teedysismics/docs:v1.11 (Java 11, Jetty 11, Tesseract OCR, FFmpeg, MediaInfo)
  • PostgreSQL Railway-managed PostgreSQL 18 for metadata and user data

Environment Variables Reference for Teedy

VariableDescriptionExample
DATABASE_URLJDBC PostgreSQL connection stringjdbc:postgresql://host:5432/db
DATABASE_USERPostgreSQL username${{Postgres.PGUSER}}
DATABASE_PASSWORDPostgreSQL password${{Postgres.PGPASSWORD}}
DOCS_BASE_URLPublic-facing URLhttps://${{RAILWAY_PUBLIC_DOMAIN}}
DOCS_DEFAULT_LANGUAGEDefault OCR languageeng
DOCS_ADMIN_EMAIL_INITAdmin email (first boot only)[email protected]
DOCS_ADMIN_PASSWORD_INITAdmin password bcrypt hash (first boot only)$2b$10$...
PORTHTTP listening port8080

Deployment Dependencies

  • Runtime: Java 11 (OpenJDK), Jetty 11.0.20
  • OCR engine: Tesseract 4 with 30+ language packs
  • Media processing: FFmpeg, MediaInfo
  • GitHub: sismics/docs
  • Docker Hub: sismics/docs
  • API docs: Available at /apidoc/ on your running instance

Hardware Requirements for Self-Hosting Teedy

ResourceMinimumRecommended
CPU1 vCPU2 vCPUs
RAM1 GB2 GB
Storage1 GB (app + indexes)10 GB+ (depends on document volume)
RuntimeJava 11, PostgreSQL 14+Java 11, PostgreSQL 16+

OCR processing with Tesseract is CPU-intensive during document ingestion. Allocate additional CPU if processing large batches of scanned documents.

Self-Hosting Teedy with Docker

Pull the official Docker image and connect it to a PostgreSQL database:

docker run -d \
  --name teedy \
  -p 8080:8080 \
  -v teedy_data:/data \
  -e DATABASE_URL="jdbc:postgresql://localhost:5432/teedy" \
  -e DATABASE_USER="postgres" \
  -e DATABASE_PASSWORD="your_password" \
  -e DOCS_BASE_URL="https://docs.example.com" \
  sismics/docs:v1.11

Or use Docker Compose for a complete self-hosted Teedy stack:

version: "3"
services:
  teedy:
    image: sismics/docs:v1.11
    ports:
      - "8080:8080"
    environment:
      DATABASE_URL: jdbc:postgresql://db:5432/teedy
      DATABASE_USER: teedy
      DATABASE_PASSWORD: changeme
      DOCS_BASE_URL: https://docs.example.com
    volumes:
      - teedy_data:/data
    depends_on:
      - db
  db:
    image: postgres:16
    environment:
      POSTGRES_DB: teedy
      POSTGRES_USER: teedy
      POSTGRES_PASSWORD: changeme
    volumes:
      - pg_data:/var/lib/postgresql/data
volumes:
  teedy_data:
  pg_data:

How Much Does Teedy Cost to Self-Host?

Teedy is completely free and open-source under the GPL v2 license. There are no paid tiers, feature gates, or enterprise editions for the self-hosted version. All features — OCR, encryption, workflows, LDAP, 2FA, API — are included at no cost. On Railway, you only pay for infrastructure (compute, storage, database) based on actual usage. Teedy also offers a commercial SaaS version at teedy.io starting at EUR 19/user/month, but the self-hosted version deployed here includes the full feature set.

Teedy vs Paperless-ngx for Self-Hosted Document Management

FeatureTeedyPaperless-ngx
OCR engineTesseract 4 (30+ languages)Tesseract + OCRmyPDF
EncryptionAES-256 at restNo built-in encryption
WorkflowsMulti-step approval chainsAutomated rule-based tagging
AuthLDAP + 2FABasic user accounts
APIFull REST API + webhooksREST API
MobileOfficial Android appCommunity mobile apps
Community size~1.9k GitHub stars~24k GitHub stars
Best forTeams needing workflows and securityPersonal/home archiving

Teedy is better suited for small teams needing document workflows, LDAP integration, and file encryption. Paperless-ngx excels at automated personal document archiving with a larger community and more consumption-focused features.

FAQ

What is Teedy and why should I self-host it? Teedy is an open-source document management system that lets you store, organize, search, and secure digital documents. Self-hosting gives you full control over your data, AES-256 encryption at rest, and no per-user SaaS fees.

What does this Railway template deploy for Teedy? This template deploys two services: the Teedy application server (sismics/docs:v1.11) with a persistent volume for document storage, and a Railway-managed PostgreSQL database for metadata. Both are pre-configured and connected automatically.

Why does self-hosted Teedy need a PostgreSQL database? While Teedy includes an embedded H2 database, it is only suitable for testing. PostgreSQL is required for production use — it provides reliable concurrent access, proper ACID transactions, and data durability for your document metadata, user accounts, and workflow state.

How do I enable LDAP authentication in self-hosted Teedy on Railway? Navigate to Settings → LDAP Configuration in the Teedy web UI after deployment. Enter your LDAP server URL, base DN, admin DN, and search filter. Teedy supports both LDAP and LDAPS connections for enterprise directory integration.

Can I import existing documents into Teedy deployed on Railway? Yes. Use the REST API at /apidoc/ to programmatically upload documents in bulk. Teedy also supports importing from email accounts (IMAP), file system directories, and SMB shares. Each uploaded document is automatically processed by the OCR engine and indexed for full-text search.

How do I set a custom admin password for Teedy on Railway? Set the DOCS_ADMIN_PASSWORD_INIT environment variable to a bcrypt hash of your desired password before the first boot. Generate the hash with npx bcryptjs 'yourpassword'. This variable is only read during initial database setup — after that, change passwords through the web UI.


Template Content

More templates in this category

View Template
Strapi
A popular self-hosted CMS

Milo
7.6K
Deploy
View Template
WordPress with Redis
Deploy WordPress with MariaDB and Redis

Noor Adn
View Template
NEW
Docmost
Self-hosted Notion alternative with real-time collaborative editing.

Tasha