Nextcloud Setup: Self-Hosted Cloud Storage and Collaboration
Nextcloud installation with Docker, Apache/Nginx configuration, database setup, SSL certificate, file synchronization, app store, and performance optimization.
Coolify installation, Docker and Git integration, application deployment, database management, SSL certificates, environment variables, and self-hosted PaaS alternative to Heroku/Netlify.
Coolify is an open-source, self-hosted alternative to cloud platforms like Heroku, Netlify, and Vercel. With Coolify running on your own server, you can easily manage your applications, databases, and services. This Docker-based platform supports automatic deployment when you push code via Git integration.
Coolify is a modern PaaS solution that lets you manage multiple servers and applications from a single interface. Key features:
Coolify installation is done with a single curl command:
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
The installation script automatically:
After installation, access via browser:
http://SERVER_IP:8000
On first setup, you will be prompted to create an admin account. Set a strong password.
On first login, set your email and password. These credentials are stored in the Coolify database.
Coolify automatically adds the server it's installed on (localhost). To add additional servers:
# Generate SSH key for Coolify to connect to remote servers
ssh-keygen -t ed25519 -C "coolify@myserver"
# Add public key to remote server
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@remote-server
http://SERVER_IP:8000/auth/github# Create a Personal Access Token on GitLab
# Required scopes: api, read_user, read_repository
# Example: Dockerfile for a Node.js application
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
Go to the Environment Variables tab in application settings:
# Example environment variables
NODE_ENV=production
DATABASE_URL=postgresql://user:pass@db:5432/myapp
REDIS_URL=redis://redis:6379
SECRET_KEY=your-secret-key-here
PORT=3000
Add sensitive information (API keys, passwords) as environment variables. Never write them in source code.
app.example.comapp.example.com → SERVER_IP# Verify DNS record
nslookup app.example.com
dig app.example.com A
# Coolify PostgreSQL connection details
# Internal URL (for apps on the same server):
postgresql://coolify:password@postgres:5432/mydb
# External URL (for external access):
postgresql://coolify:password@SERVER_IP:PORT/mydb
# New Resource → Database → Redis
# Version: 7.x
# Internal connection:
redis://default:password@redis:6379
Coolify offers automatic backup functionality:
# Manual backup
coolify backup create --database postgres-id
# List backups
coolify backup list
You can import existing docker-compose.yml files directly into Coolify:
# docker-compose.yml example
version: '3.8'
services:
app:
image: myapp:latest
environment:
- NODE_ENV=production
- DATABASE_URL=${DATABASE_URL}
ports:
- "3000:3000"
depends_on:
- db
db:
image: postgres:16
environment:
POSTGRES_DB: myapp
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
Set up webhooks for automatic deployment after git push:
# GitHub Webhook settings:
# Payload URL: https://coolify.example.com/webhooks/github
# Content type: application/json
# Secret: Secret copied from Coolify
# Events: Push events
# Update Coolify to the latest version
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
# Or from the web interface:
# Settings → Updates → Update Coolify
# View Coolify logs
docker logs coolify
# List all Coolify containers
docker ps | grep coolify
# Restart Coolify
docker restart coolify
# Proxy (Traefik) logs
docker logs coolify-proxy
Coolify works great on REXE VPS servers. With 4 GB RAM and 2 vCPU, you can easily manage small to medium-scale projects.
The Coolify installation script detects existing Docker installations. If you have an older Docker version, first remove it with 'apt remove docker docker-engine docker.io containerd runc', then run the Coolify installation again.
Open port 8000 in the server firewall: 'ufw allow 8000/tcp'. If you're using a cloud provider (AWS, GCP, Azure), also check security group/firewall rules. Verify the Coolify container is running with 'docker ps | grep coolify'.
Check the build logs in the Coolify interface (Deployments → latest deployment → Logs). If using Nixpacks, make sure there's a package.json, requirements.txt, or Dockerfile in the project root. Verify that environment variables are correctly defined.
Check that the domain's DNS record is correctly pointing to the server IP (nslookup domain.com). Make sure Let's Encrypt can access ports 80 and 443. Check Coolify proxy (Traefik) logs with 'docker logs coolify-proxy'. DNS propagation can take up to 24 hours.
Add new servers from the Servers menu. You need to define an SSH key for each server. Coolify connects to remote servers via SSH and executes Docker commands. There is no resource sharing between servers; each server operates independently.
Add S3-compatible storage from Settings → Backup menu. You can use AWS S3, Cloudflare R2, or MinIO. Enter the bucket name, Access Key, Secret Key, and endpoint URL. Then configure automatic backup scheduling from the database settings.
Nextcloud installation with Docker, Apache/Nginx configuration, database setup, SSL certificate, file synchronization, app store, and performance optimization.
Portainer CE installation, Docker and Kubernetes management, stack deployment, volume/network management, user authorization, webhook and GitOps integration.
Uptime Kuma installation with Docker, HTTP/TCP/DNS/ping monitoring, notification integrations (Telegram, Discord, email), status page creation, and alert configuration.