What is NocoDB?
NocoDB is an open-source Airtable alternative that transforms relational databases (MySQL, PostgreSQL, SQL Server, SQLite, and MariaDB) into a spreadsheet-like smart interface. It allows teams to collaborate and build applications with familiar spreadsheet features while leveraging the power of underlying databases.
Prerequisites
Before getting started, ensure you have:
- Docker installed (latest version recommended)
- Docker Compose installed
- Basic knowledge of Docker and containerization
- A server or computer with at least 1GB RAM
Installation Methods
There are several ways to set up NocoDB with Docker Compose:
- Using the official NocoDB GitHub repository examples
- Creating a custom Docker Compose file
- Using image from Docker Hub directly
Basic Docker Compose Setup
Here’s a basic docker-compose.yml
file to get started with NocoDB using SQLite (simplest setup):
1 2 3 4 5 6 7 8 9 10 11 12 |
version: '3.3' services: nocodb: image: nocodb/nocodb:latest ports: - "8080:8080" volumes: - ./nocodb_data:/usr/app/data/ environment: - NC_AUTH_JWT_SECRET=your-jwt-secret-here |
This configuration:
- Uses the latest NocoDB image
- Maps port 8080 from the container to your host
- Stores data in a local directory (
./nocodb_data
) - Sets a JWT secret for authentication
Docker Compose with PostgreSQL
A more production-ready setup with PostgreSQL:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
version: '2.1' services: root_db: image: postgres:14 restart: always volumes: - ./pg_data:/var/lib/postgresql/data environment: POSTGRES_PASSWORD: password POSTGRES_USER: postgres POSTGRES_DB: root_db healthcheck: test: pg_isready -U postgres -d root_db interval: 10s timeout: 5s retries: 5 nocodb: depends_on: root_db: condition: service_healthy image: nocodb/nocodb:latest ports: - "8080:8080" restart: always volumes: - ./nocodb:/usr/app/data/ environment: - NC_DB=pg://root_db:5432?u=postgres&p=password&d=root_db - NC_AUTH_JWT_SECRET=your-jwt-secret-here |
Docker Compose with MySQL
To use MySQL as your database:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
version: '2.1' services: root_db: image: mysql:8 command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci restart: always volumes: - ./mysql_data:/var/lib/mysql environment: MYSQL_DATABASE: root_db MYSQL_ROOT_PASSWORD: password healthcheck: test: mysql -u root -ppassword -e "SHOW DATABASES;" interval: 10s timeout: 5s retries: 5 nocodb: depends_on: root_db: condition: service_healthy image: nocodb/nocodb:latest ports: - "8080:8080" restart: always volumes: - ./nocodb:/usr/app/data/ environment: - NC_DB=mysql2://root_db:3306?u=root&p=password&d=root_db - NC_AUTH_JWT_SECRET=your-jwt-secret-here |
Using with MariaDB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
version: '2.1' services: root_db: image: mariadb:10.6 command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci restart: always volumes: - ./mariadb_data:/var/lib/mysql environment: MYSQL_DATABASE: root_db MYSQL_ROOT_PASSWORD: password healthcheck: test: mysql -u root -ppassword -e "SHOW DATABASES;" interval: 10s timeout: 5s retries: 5 nocodb: depends_on: root_db: condition: service_healthy image: nocodb/nocodb:latest ports: - "8080:8080" restart: always volumes: - ./nocodb:/usr/app/data/ environment: - NC_DB=mysql2://root_db:3306?u=root&p=password&d=root_db - NC_AUTH_JWT_SECRET=your-jwt-secret-here |
Environment Variables
NocoDB can be configured using various environment variables. Here are the most important ones:
Database Configuration
Variable |
Description |
Default |
---|---|---|
NC_DB |
Database connection string (Mandatory) |
SQLite in /usr/app/data/ |
NC_DB_JSON |
Database connection as JSON string |
– |
NC_DB_JSON_FILE |
Path to database connection JSON file |
– |
Authentication
Variable |
Description |
Default |
---|---|---|
NC_AUTH_JWT_SECRET |
JWT secret for authentication (Mandatory) |
Random generated |
NC_JWT_EXPIRES_IN |
JWT token expiration time |
10h |
NC_ADMIN_EMAIL |
Super admin email |
– |
NC_ADMIN_PASSWORD |
Super admin password |
– |
Storage
Variable |
Description |
Default |
---|---|---|
NC_ATTACHMENT_FIELD_SIZE |
Max file size for attachments |
20MB |
NC_MAX_ATTACHMENTS_ALLOWED |
Max number of attachments per cell |
10 |
Networking
Variable |
Description |
Default |
---|---|---|
PORT |
Port to run NocoDB on |
8080 |
NC_PUBLIC_URL |
Base URL for public access |
Inferred from request |
Email (Optional)
Variable |
Description |
---|---|
NC_SMTP_FROM |
From email address |
NC_SMTP_HOST |
SMTP server host |
NC_SMTP_PORT |
SMTP server port |
NC_SMTP_USERNAME |
SMTP username |
NC_SMTP_PASSWORD |
SMTP password |
NC_SMTP_SECURE |
Enable SMTP secure (true/false) |
Database Connection Strings
NocoDB uses the following format for database connections:
PostgreSQL
1 2 3 |
pg://host:port?u=username&p=password&d=database |
MySQL/MariaDB
1 2 3 |
mysql2://host:port?u=username&p=password&d=database |
MS SQL Server
1 2 3 |
mssql://host:port?u=username&p=password&d=database |
SQLite
1 2 3 |
sqlite3://path/to/database.db |
Starting NocoDB
After creating your docker-compose.yml
file:
- Open a terminal/command prompt
- Navigate to the directory containing your
docker-compose.yml
- Run:
1 2 3 |
docker-compose up -d |
- Access NocoDB at
http://localhost:8080
(or your configured port)
Persistence
To ensure your data persists between container restarts, always:
- Mount volumes for your database (as shown in examples)
- Mount a volume for NocoDB at
/usr/app/data/
Security Considerations
For production deployments:
- Always set a strong
NC_AUTH_JWT_SECRET
- Consider running behind a reverse proxy with HTTPS
- Use strong database passwords
- Consider setting up
NC_ADMIN_EMAIL
andNC_ADMIN_PASSWORD
- Restrict access to your database container (don’t expose ports unless needed)
Troubleshooting
Common issues and solutions:
Connection Issues
- Ensure database container is healthy before NocoDB tries to connect
- Check database credentials are correct in connection string
- For external databases, ensure they’re accessible from the NocoDB container
Permission Issues
- Ensure volumes have correct permissions
- For SQLite, check write permissions to the data directory
Logs
View container logs for troubleshooting:
1 2 3 |
docker-compose logs nocodb |
Advanced Configurations
Using with NGINX Reverse Proxy
For a setup with NGINX as a reverse proxy:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
version: '3.9' networks: frontend: backend: services: proxy: image: nginx:alpine restart: unless-stopped volumes: - ./nginx/conf.d:/etc/nginx/conf.d - ./nginx/certs:/etc/nginx/certs ports: - "80:80" - "443:443" networks: - frontend - backend nocodb: image: nocodb/nocodb:latest restart: unless-stopped volumes: - ./nocodb:/usr/app/data/ environment: - NC_DB=pg://db:5432?u=postgres&p=password&d=nocodb - NC_PUBLIC_URL=https://your-domain.com - NC_AUTH_JWT_SECRET=your-jwt-secret-here depends_on: db: condition: service_healthy networks: - backend db: image: postgres:14 restart: unless-stopped volumes: - ./pg_data:/var/lib/postgresql/data environment: POSTGRES_PASSWORD: password POSTGRES_USER: postgres POSTGRES_DB: nocodb networks: - backend healthcheck: test: pg_isready -U postgres -d nocodb interval: 10s timeout: 5s retries: 5 |
NGINX configuration (./nginx/conf.d/default.conf
):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
server { listen 80; server_name your-domain.com; location / { return 301 https://$host$request_uri; } } server { listen 443 ssl; server_name your-domain.com; ssl_certificate /etc/nginx/certs/cert.pem; ssl_certificate_key /etc/nginx/certs/key.pem; location / { proxy_pass http://nocodb:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } |
Additional Resources
FAQ
What is NoCode development?
NoCode development is an approach to software creation that allows people to build applications, websites, and workflows using visual interfaces without writing any code. These platforms use drag-and-drop components, pre-built templates, and visual programming tools that enable non-technical users to create functional digital products.
What’s the difference between NoCode and LowCode?
The main difference between NoCode and LowCode is the level of coding knowledge required. NoCode platforms require zero coding expertise, using purely visual interfaces with drag-and-drop functionality. LowCode platforms, however, allow for some custom coding to extend functionality, requiring at least basic programming knowledge for more advanced customization and complex applications.
What can I build with NoCode tools?
With NoCode tools, you can build a wide range of digital products including:
- Websites and landing pages
- Mobile and web applications
- Internal business tools and dashboards
- Automated workflows and processes
- Customer portals and self-service platforms
- Databases and data management systems
- Forms and surveys
- E-commerce stores
Are NoCode applications scalable?
Scalability depends on the specific NoCode platform you choose. Many modern NoCode platforms offer scalable infrastructure to handle growth, but there can be limitations. While NoCode solutions are excellent for rapid prototyping and smaller to medium-sized applications, they may face challenges with very complex, data-intensive applications experiencing high traffic volumes. For enterprise-level applications, it’s important to choose platforms specifically designed for scalability or consider hybrid approaches.
Is NoCode secure for business applications?
Most reputable NoCode platforms implement robust security measures, including data encryption, user authentication, and regular security audits. However, security features can vary between platforms. While NoCode tools generally provide basic security, they may not offer the same depth of security features as traditionally developed applications. For applications handling sensitive data, look for platforms that comply with industry standards like GDPR or HIPAA and offer advanced security features.
How much do NoCode platforms cost?
NoCode platform pricing varies widely based on features, capabilities, and target users. Many platforms offer tiered pricing models:
- Free plans: Limited functionality, suitable for learning or small projects
- Basic plans: $10-50/month for individuals or small teams
- Professional plans: $50-200/month with more features and capacity
- Enterprise plans: $200-1000+/month with advanced features, support, and security
While there’s an upfront cost, NoCode platforms often provide significant ROI through reduced development time and resources compared to traditional coding.
Will NoCode replace traditional developers?
NoCode is unlikely to completely replace traditional developers. Instead, it complements their work by handling simpler application development, allowing professional developers to focus on more complex, specialized tasks. According to industry forecasts, by 2025, approximately 70% of new applications are expected to be developed using NoCode or LowCode platforms, up from 25% in 2020. This shift represents a transformation in how software is built rather than the elimination of coding professionals.
Can NoCode platforms integrate with existing systems?
Yes, most modern NoCode platforms provide integration capabilities with existing systems and databases. These integrations typically work through:
- APIs and webhooks
- Built-in connectors for popular services
- Integration platforms like Zapier
- Native integrations with common business tools
- Database connections via standard protocols
The extent and ease of these integrations vary by platform, so it’s important to verify that your chosen NoCode solution can connect with your critical existing systems.
How does AI impact NoCode development?
AI is transforming NoCode development in two primary ways:
- Developer-focused AI: Helps create software by interpreting natural language prompts to design interfaces or generate components. AI assists in understanding requirements and translating them into functional application structures.
- User-focused AI: Enables NoCode platform users to add AI capabilities to their applications, such as text summarization, image recognition, or intelligent data analysis without needing AI expertise.
As these technologies continue to evolve, AI is expected to make NoCode platforms even more powerful and accessible to non-technical users.
What are the limitations of NoCode platforms?
NoCode platforms have several common limitations:
- Customization constraints: Limited ability to create highly unique or specialized functionality
- Performance issues: May struggle with complex, data-intensive applications or high traffic loads
- Scalability challenges: Can face limitations when scaling applications beyond certain user or data thresholds
- Vendor lock-in: Difficulty migrating applications between different NoCode platforms
- Advanced functionality: Complex algorithms or specialized features may still require custom code
- Learning curve: Despite being “no-code,” some platforms have steep learning curves
What are the most popular NoCode platforms in 2025?
The most popular NoCode platforms in 2025 include:
- Bubble: Full-stack application development with extensive customization
- Webflow: Advanced website building with complex interactions
- Airtable: Versatile database and spreadsheet hybrid with automation
- Zapier: Workflow automation connecting different applications
- Glide: Mobile app creation from spreadsheet data
- NocoBase: Open-source platform for building large systems
- Microsoft Power Apps: Business application development within the Microsoft ecosystem
- Nintex: Process automation and workflow management
- Quickbase: Business process management and application development
- Figma: Collaborative interface design with interactive prototyping
Each platform specializes in different aspects of NoCode development, from website creation to database management and workflow automation.
How long does it take to learn a NoCode platform?
The learning curve for NoCode platforms varies based on the platform’s complexity and your technical background. Simple platforms like form builders or basic website creators can be learned in a few hours to a few days. More comprehensive platforms for building complex applications may take several weeks to master. Most NoCode platforms offer tutorials, documentation, and community support to accelerate the learning process. The time investment is typically much shorter than learning traditional programming languages.
What skills are useful for NoCode development?
While NoCode eliminates the need for programming skills, these abilities are valuable:
- Logical thinking: Understanding process flows and conditional logic
- UI/UX design knowledge: Creating intuitive and effective user interfaces
- Data modeling: Structuring data efficiently for your application
- Problem-solving: Breaking down complex requirements into manageable parts
- Project management: Planning and organizing application development
- Basic technical understanding: Familiarity with concepts like APIs, databases, and workflows
- Design thinking: User-centered approach to solving problems
Having these skills will help you create more effective, user-friendly applications, even without coding knowledge.
How do I choose the right NoCode platform for my project?
To choose the right NoCode platform:
- Define your requirements: Clarify what you need to build and its complexity
- Consider your technical skills: Choose platforms matching your comfort level
- Evaluate scalability needs: Ensure the platform can grow with your project
- Check integration options: Verify compatibility with your existing systems
- Assess customization needs: Determine how unique your solution needs to be
- Review pricing models: Check if costs align with your budget as you scale
- Test with free trials: Experiment before committing to a platform
- Research community support: Active communities offer valuable resources
Take time to research and test multiple platforms before making your final decision.
What are the main benefits of using NoCode solutions?
The main benefits of NoCode solutions include:
- Speed and efficiency: Develop applications much faster than traditional coding
- Cost-effectiveness: Reduce development costs and resource requirements
- Accessibility: Enable non-technical team members to build software solutions
- Rapid prototyping: Quickly test ideas and validate concepts
- Ease of maintenance: Update and modify applications without complex coding
- Democratized innovation: Allow more people to create technology solutions
- Reduced technical debt: Pre-built components follow best practices
- Business agility: Respond faster to changing business needs
According to research, 90% of NoCode users believe their companies have experienced accelerated growth thanks to using NoCode solutions.