Deploying the No-Code Architects Toolkit API on a Contabo VPS with MinIO

The No-Code Architects Toolkit API is a free, open-source solution for media processing, automation, and cloud storage integration. By deploying it on a Contabo VPS with MinIO as an S3-compatible object storage, you can create a cost-effective, self-hosted environment. Contabo’s affordable VPS plans, featuring NVMe SSDs and global data centers, are ideal for this Flask-based Python API. This guide walks you through setting up MinIO and the toolkit, designed for users with basic Linux and Docker skills.
Prerequisites
- Contabo VPS: At least 4 vCPUs, 8 GB RAM, 200 GB SSD (e.g., VPS M at ~€7.99/month).
- Domain name (optional, for custom API access).
- SSH client (e.g., PuTTY, Terminal).
- Basic Linux and Docker knowledge.
- GitHub account for repository access.
- API key for toolkit authentication.
Step 1: Set Up Your Contabo VPS
1.1 Purchase and Configure
- Visit contabo and select a VPS plan (e.g., VPS M).
- Choose a data center (Europe, US, Asia) and Ubuntu 22.04 LTS.
- Save the emailed VPS IP, root username, and password.
- Log in to the Contabo Customer Control Panel and set a hostname (e.g.,
nca-toolkit-vps
).
1.2 Connect and Secure
- SSH into your VPS:
ssh root@YOUR_VPS_IP
- Update packages:
sudo apt-get update && sudo apt-get upgrade -y
- Create a non-root user:
adduser nca-user
usermod -aG sudo nca-user
- Reconnect as
nca-user
:
ssh nca-user@YOUR_VPS_IP
Step 2: Install Docker and Dependencies
- Install Docker and Docker Compose:
sudo apt-get update
sudo apt-get install -y docker.io docker-compose
- Start and enable Docker:
sudo systemctl start docker
sudo systemctl enable docker
- Add user to Docker group:
sudo usermod -aG docker nca-user
Log out and back in.
- Verify Docker:
docker --version
docker run hello-world
- Install Git:
sudo apt-get install -y git
Step 3: Install and Configure MinIO
MinIO provides S3-compatible storage for the toolkit.
- Create a data directory:
mkdir -p ~/minio-data
- Run MinIO:
docker run -d -p 9000:9000 -p 9001:9001 --name minio \
-v ~/minio-data:/data \
-e MINIO_ROOT_USER=admin \
-e MINIO_ROOT_PASSWORD=password123 \
quay.io/minio/minio server /data --console-address ":9001"
Use a secure password instead of password123
.
Verify MinIO:
docker ps
- Access console at
http://YOUR_VPS_IP:9001
(username:admin
, password:password123
).- Configure MinIO:
- Create a bucket named
nca-toolkit
. - Generate access and secret keys:
- Navigate to Users > Create User.
- Save the Access Key and Secret Key (or use
admin
/password123
for testing).- Open ports:
sudo ufw allow 9000
sudo ufw allow 9001
Step 4: Clone the Repository
- Clone the toolkit:
cd ~
git clone https://github.com/stephengpope/no-code-architects-toolkit.git
cd no-code-architects-toolkit
- Key files:
-
Dockerfile
: Builds the image. -
app.py
: Flask app. -
requirements.txt
: Dependencies.
-
Step 5: Configure Environment Variables
- Generate an API key:
openssl rand -hex 16
Save as your_api_key
.
- Set variables for MinIO:
-
S3_ENDPOINT_URL
:http://YOUR_VPS_IP:9000
-
S3_ACCESS_KEY
: MinIO access key -
S3_SECRET_KEY
: MinIO secret key -
S3_BUCKET_NAME
:nca-toolkit
-
S3_REGION
:None
- Optional:
MAX_QUEUE_LENGTH=10
,GUNICORN_WORKERS=4
,GUNICORN_TIMEOUT=300
,LOCAL_STORAGE_PATH=/tmp
-
- Create
.env
(optional):
nano .env
Add:
API_KEY=your_api_key
S3_ENDPOINT_URL=http://YOUR_VPS_IP:9000
S3_ACCESS_KEY=your_access_key
S3_SECRET_KEY=your_secret_key
S3_BUCKET_NAME=nca-toolkit
S3_REGION=None
LOCAL_STORAGE_PATH=/tmp
MAX_QUEUE_LENGTH=10
GUNICORN_WORKERS=4
GUNICORN_TIMEOUT=300
Save and exit.
Step 6: Build and Run the Toolkit
- Build the image:
docker build -t no-code-architects-toolkit .
- Run the container:
docker run -d -p 8080:8080 --name nca-toolkit \
-e API_KEY=your_api_key \
-e S3_ENDPOINT_URL=http://YOUR_VPS_IP:9000 \
-e S3_ACCESS_KEY=your_access_key \
-e S3_SECRET_KEY=your_secret_key \
-e S3_BUCKET_NAME=nca-toolkit \
-e S3_REGION=None \
-e LOCAL_STORAGE_PATH=/tmp \
-e MAX_QUEUE_LENGTH=10 \
-e GUNICORN_WORKERS=4 \
-e GUNICORN_TIMEOUT=300 \
stephengpope/no-code-architects-toolkit:latest
- Verify:
docker ps
docker logs nca-toolkit
- Open port:
sudo ufw allow 8080
Step 8: Configure Domain and SSL (Optional)
- Point domain to
YOUR_VPS_IP
via DNS A record. - Install Nginx:
sudo apt-get install -y nginx
Configure:
sudo nano /etc/nginx/sites-available/nca-toolkit
Add:
server {
listen 80;
server_name your_domain.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Enable:
sudo ln -s /etc/nginx/sites-available/nca-toolkit /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
- Add SSL:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your_domain.com
- Test:
https://your_domain.com/v1/toolkit/test
.
Step 9: Optimize and Maintain
-
Performance: Monitor with
htop
orglances
:
sudo apt install -y htop glances
-
Backups: Use Contabo snapshots or toolkit’s
/v1/s3/upload
. -
Security:
- Update:
sudo apt-get update && sudo apt-get upgrade -y
. - Restrict SSH:
sudo ufw allow from YOUR_IP to any port 22
.
- Update:
- Monitoring: Use Contabo’s API or Prometheus.
Step 10: Join the Community
Join the No-Code Architects Community for support, courses, and networking. Contribute via GitHub by forking and submitting pull requests to the build
branch.
Conclusion
Deploying the No-Code Architects Toolkit API on a Contabo VPS with MinIO offers a scalable, self-hosted solution for media processing. Contabo’s cost-effective VPS and MinIO’s S3 compatibility make it ideal for businesses and creators. Set up in under an hour, optimize with Nginx/SSL, and leverage the community for support. Start building with this free API today!
Resources: