Docker Compose Deployment
Recommended Scale: 0-1000 users| Advantages | Disadvantages |
|---|---|
| Simple deployment | Single-machine deployment, complex scaling |
| Full control | |
| Flexible configuration |
- Operating System: Recommended Linux distribution, such as Ubuntu 20.04 LTS
- Memory: Minimum 4GB RAM
- CPU: At least 2 cores
- Disk Space: Minimum 40GB available space
- Network: Stable internet connection with necessary port access
Prerequisites
Before starting, ensure you have:- Basic understanding of Docker and containerization principles
- Docker and Docker Compose installed on your machine. Visit the official Docker documentation for installation guides.
Installing Docker
Installing the Application
Create docker-compose.yaml File
Access your server, create and enter the teable folder:docker-compose.yaml and a .env file, then paste the following content:
Minimal Deployment:
docker-compose.yaml
.env
Adding Storage Service (Optional)
Teable uses local storage to manage attachment resources by default. You can add MinIO or cloud storage for more powerful and stable service.- Add MinIO to docker-compose
- Connect to External MinIO
- Connect to AWS S3
MinIO provides an additional storage management interface (port 9001) and more powerful, stable file service.
docker-compose.yaml
.env
Start the Application
Run the following commands in the current directory to start the application. Once started, you can access the application at 127.0.0.1:3000HTTPS environment is required for large-scale data copying operations, otherwise asynchronous clipboard access will not be possible
Using Managed Databases (Optional)
If you prefer to use managed databases, you can further simplify the deployment process:- Remove services.teable-db
- Remove volumes.teable-db
- Update .env with your managed database configuration
.env
Note that
127.0.0.1 is the container’s internal network. If you want to connect to a locally deployed database, use host.docker.internal instead of 127.0.0.1 as the host address, otherwise the connection will fail- Remove service.teable-cache
- Remove service.teable.depends_on.teable-cache
- Remove volumes.teable-cache
- Update .env with your managed Redis configuration
Next Steps
Configure Email Service Configure External Database ConnectionSupport and Feedback
If you encounter any issues during deployment, please contact our support team at support@teable.ai or submit an issue.License
Teable CE is open source under the AGPL-3.0 license. For EE license subscription, please visit our pricing page to learn more about our enterprise offerings.The
ghcr.io/teableio/teable:latest image contains all features of both enterprise and community editions, and is free to use.If you need to use only the community edition, you can choose the ghcr.io/teableio/teable-community:latest image.Common Issues
Why can't I import CSV/xlsx or upload images after installation
Why can't I import CSV/xlsx or upload images after installation
File import issues are typically due to incorrect configuration of the PUBLIC_ORIGIN environment variable. You need to set PUBLIC_ORIGIN to the currently accessible address:After changing this configuration, you’ll need to restart your Teable instance for the changes to take effect.
Important: Do not include a trailing slash (”/”) at the end of the URL.
How to enable HTTPS
How to enable HTTPS
Enabling HTTPS requires the following steps:
Obtain a valid SSL certificate
Set PROTOCOL=https in your configuration file
If using MinIO, remember to set BACKEND_STORAGE_MINIO_USE_SSL to true
It’s recommended to use a reverse proxy (like Nginx or Traefik) to handle SSL termination.
How do I backup my data?
How do I backup my data?
For Docker Compose deployments, you have several backup options:Option 1: Full Virtual Machine Backup (Recommended for simplicity)
- Regularly backup the entire virtual machine hosting Teable
- Provides complete system recovery capability
- Backup all Docker volumes defined in your
docker-compose.yaml - List volumes:
docker volume ls - Backup a volume:
- PostgreSQL database: Contains all table data
- Redis database: Contains automation queue data
- Data directory: Backup the
teable-datavolume (contains all attachment files)