Baserow
Open-source Airtable alternative.
Overview
Baserow is an open-source, no-code database platform that provides a user-friendly alternative to Airtable, allowing teams to create collaborative databases, spreadsheets, and applications without programming knowledge. Founded in 2020, Baserow emerged as a response to the need for data sovereignty and customization that proprietary solutions couldn't provide, offering real-time collaboration, custom field types, and automatic API generation for every database created. This Docker stack combines Baserow with PostgreSQL for robust relational data storage and Redis for high-performance caching and session management. PostgreSQL serves as the primary data store, leveraging its ACID compliance and JSON support to handle Baserow's flexible schema requirements, while Redis accelerates user sessions, caches frequently accessed data, and manages real-time collaboration features. Small businesses seeking Airtable alternatives, development teams requiring custom database solutions, and organizations prioritizing data privacy will find this stack particularly valuable. The combination delivers enterprise-grade reliability through PostgreSQL's proven stability, lightning-fast user interactions via Redis caching, and the flexibility to host sensitive data on-premises while maintaining the intuitive interface that makes Baserow accessible to non-technical users.
Key Features
- Visual database builder with drag-and-drop interface for creating tables, views, and relationships without SQL knowledge
- Automatic REST API generation for every database and table created, enabling custom integrations and mobile app development
- Real-time collaborative editing with live updates across multiple users and conflict resolution
- PostgreSQL-powered advanced field types including lookups, formulas, file attachments, and relational links between tables
- Redis-accelerated performance for instant loading of large datasets and responsive user interface interactions
- Row-level permissions and team-based access controls with granular sharing options
- Plugin architecture supporting custom field types, views, and integrations through Baserow's extensible framework
- Multi-view support including grid, gallery, kanban, and calendar views with custom filtering and sorting
Common Use Cases
- 1Small business CRM replacement for managing customers, leads, and sales pipelines with custom fields and automated workflows
- 2Project management hub for development teams tracking tasks, sprints, and deliverables with integrated file storage
- 3Content management system for marketing teams organizing campaigns, assets, and publication schedules
- 4Inventory management for e-commerce businesses tracking products, suppliers, and stock levels with automated reordering
- 5Event planning platform coordinating venues, vendors, attendees, and logistics with real-time collaboration
- 6Research data collection and analysis for academic institutions managing survey responses and experimental data
- 7HR management system for tracking employee records, performance reviews, and recruitment processes with privacy compliance
Prerequisites
- Minimum 2GB RAM (4GB recommended) to accommodate PostgreSQL data processing and Redis caching simultaneously
- Ports 80 and 443 available for Baserow web interface and SSL termination
- Basic understanding of database concepts and user permission management
- Docker Compose knowledge for environment variable configuration and volume management
- SSL certificate setup knowledge if deploying with HTTPS in production environments
- Backup strategy planning for PostgreSQL data persistence and disaster recovery
For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms
docker-compose.yml
docker-compose.yml
1services: 2 baserow: 3 image: baserow/baserow:latest4 container_name: baserow5 restart: unless-stopped6 environment: 7 BASEROW_PUBLIC_URL: http://localhost8 DATABASE_HOST: postgres9 DATABASE_NAME: baserow10 DATABASE_USER: baserow11 DATABASE_PASSWORD: ${DB_PASSWORD}12 REDIS_HOST: redis13 SECRET_KEY: ${SECRET_KEY}14 volumes: 15 - baserow_data:/baserow/data16 ports: 17 - "80:80"18 - "443:443"19 depends_on: 20 - postgres21 - redis22 networks: 23 - baserow2425 postgres: 26 image: postgres:15-alpine27 container_name: baserow-postgres28 restart: unless-stopped29 environment: 30 POSTGRES_USER: baserow31 POSTGRES_PASSWORD: ${DB_PASSWORD}32 POSTGRES_DB: baserow33 volumes: 34 - postgres_data:/var/lib/postgresql/data35 networks: 36 - baserow3738 redis: 39 image: redis:alpine40 container_name: baserow-redis41 restart: unless-stopped42 networks: 43 - baserow4445volumes: 46 baserow_data: 47 postgres_data: 4849networks: 50 baserow: 51 driver: bridge.env Template
.env
1DB_PASSWORD=changeme2SECRET_KEY=generate-a-secret-keyUsage Notes
- 1Access at http://localhost
- 2No-code database builder
- 3API auto-generation
Individual Services(3 services)
Copy individual services to mix and match with your existing compose files.
baserow
baserow:
image: baserow/baserow:latest
container_name: baserow
restart: unless-stopped
environment:
BASEROW_PUBLIC_URL: http://localhost
DATABASE_HOST: postgres
DATABASE_NAME: baserow
DATABASE_USER: baserow
DATABASE_PASSWORD: ${DB_PASSWORD}
REDIS_HOST: redis
SECRET_KEY: ${SECRET_KEY}
volumes:
- baserow_data:/baserow/data
ports:
- "80:80"
- "443:443"
depends_on:
- postgres
- redis
networks:
- baserow
postgres
postgres:
image: postgres:15-alpine
container_name: baserow-postgres
restart: unless-stopped
environment:
POSTGRES_USER: baserow
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_DB: baserow
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- baserow
redis
redis:
image: redis:alpine
container_name: baserow-redis
restart: unless-stopped
networks:
- baserow
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 baserow:5 image: baserow/baserow:latest6 container_name: baserow7 restart: unless-stopped8 environment:9 BASEROW_PUBLIC_URL: http://localhost10 DATABASE_HOST: postgres11 DATABASE_NAME: baserow12 DATABASE_USER: baserow13 DATABASE_PASSWORD: ${DB_PASSWORD}14 REDIS_HOST: redis15 SECRET_KEY: ${SECRET_KEY}16 volumes:17 - baserow_data:/baserow/data18 ports:19 - "80:80"20 - "443:443"21 depends_on:22 - postgres23 - redis24 networks:25 - baserow2627 postgres:28 image: postgres:15-alpine29 container_name: baserow-postgres30 restart: unless-stopped31 environment:32 POSTGRES_USER: baserow33 POSTGRES_PASSWORD: ${DB_PASSWORD}34 POSTGRES_DB: baserow35 volumes:36 - postgres_data:/var/lib/postgresql/data37 networks:38 - baserow3940 redis:41 image: redis:alpine42 container_name: baserow-redis43 restart: unless-stopped44 networks:45 - baserow4647volumes:48 baserow_data:49 postgres_data:5051networks:52 baserow:53 driver: bridge54EOF5556# 2. Create the .env file57cat > .env << 'EOF'58DB_PASSWORD=changeme59SECRET_KEY=generate-a-secret-key60EOF6162# 3. Start the services63docker compose up -d6465# 4. View logs66docker compose logs -fOne-Liner
Run this command to download and set up the recipe in one step:
terminal
1curl -fsSL https://docker.recipes/api/recipes/baserow/run | bashTroubleshooting
- Baserow fails to start with database connection error: Verify DATABASE_HOST matches the PostgreSQL service name and ensure DB_PASSWORD environment variable is properly set
- Redis connection timeout during user sessions: Check Redis container status and verify REDIS_HOST environment variable points to the correct service name
- PostgreSQL data corruption after container restart: Ensure postgres_data volume is properly mounted and has sufficient disk space with appropriate write permissions
- Baserow API requests return 500 errors: Verify SECRET_KEY environment variable is set and consistent across container restarts
- File uploads fail or disappear: Confirm baserow_data volume is correctly mounted to /baserow/data and has adequate storage space
- BASEROW_PUBLIC_URL mismatch causing authentication issues: Update the public URL to match your actual domain or IP address for proper CORS and session handling
Community Notes
Loading...
Loading notes...
Download Recipe Kit
Get all files in a ready-to-deploy package
Includes docker-compose.yml, .env template, README, and license
Components
baserowpostgresredis
Tags
#baserow#database#airtable#spreadsheet
Category
Productivity & CollaborationAd Space
Shortcuts: C CopyF FavoriteD Download