Uninstalling Server Components
Complete guide for removing Camouflage server deployments including Community Edition and Enterprise Edition components.
Community Edition
Community Edition runs as a single all-in-one Docker container. Follow these steps to safely remove it.
Quick Removal
# Stop the container
docker stop camouflage-ce
# Remove the container
docker rm camouflage-ce
# Remove the volume (WARNING: This deletes ALL data!)
docker volume rm camouflage_data
# Remove the image (optional)
docker rmi camouflagenetworks/camouflage-ce:latest
Backup Before Removal
IMPORTANT: Always backup your data before removing the volume!
# 1. Stop the container
docker stop camouflage-ce
# 2. Create a backup
docker run --rm \
-v camouflage_data:/data \
-v $(pwd):/backup \
alpine tar czf /backup/camouflage-backup-$(date +%Y%m%d).tar.gz -C /data .
# 3. Verify backup
ls -lh camouflage-backup-*.tar.gz
# 4. Now safe to remove
docker rm camouflage-ce
docker volume rm camouflage_data
What Gets Backed Up
The backup contains:
- ✅ SQLite database (all users, networks, nodes)
- ✅ SSL certificates
- ✅ Configuration files
- ✅ VPN daemon states
- ✅ Logs
Preserving Data for Later
If you might want to use the data again:
# Just stop and remove the container
docker stop camouflage-ce
docker rm camouflage-ce
# KEEP the volume intact
# Later, start a new container with the same volume:
docker run -d \
--name camouflage-ce \
-p 9443:9443 \
-p 61700:61700/udp \
-p 61701:61701/udp \
--cap-add=NET_ADMIN \
--cap-add=NET_RAW \
-v camouflage_data:/data \
camouflagenetworks/camouflage-ce:latest
Restoring from Backup
# 1. Create a new volume
docker volume create camouflage_data
# 2. Restore the backup
docker run --rm \
-v camouflage_data:/data \
-v $(pwd):/backup \
alpine tar xzf /backup/camouflage-backup-20260114.tar.gz -C /data
# 3. Start container with restored data
docker run -d \
--name camouflage-ce \
-p 9443:9443 \
-p 61700:61700/udp \
-p 61701:61701/udp \
--cap-add=NET_ADMIN \
--cap-add=NET_RAW \
-v camouflage_data:/data \
camouflagenetworks/camouflage-ce:latest
Enterprise Edition
Enterprise Edition consists of separate components that can be removed independently.
Relay Server
The relay server coordinates VPN connections.
Docker
# Stop and remove container
docker stop camouflage-relay
docker rm camouflage-relay
# Remove volumes (if any)
docker volume rm relay_data
# Remove image
docker rmi camouflagenetworks/camouflage-relay:latest
Docker Compose
# Stop and remove all services
docker-compose down
# Remove volumes (WARNING: Deletes data!)
docker-compose down -v
# Or remove specific service
docker-compose rm -s -v relay
Kubernetes
# Delete the entire namespace (removes everything)
kubectl delete namespace camouflage
# Or delete individual components
kubectl delete deployment camouflage-relay -n camouflage
kubectl delete service camouflage-relay -n camouflage
kubectl delete configmap relay-config -n camouflage
kubectl delete secret relay-secrets -n camouflage
kubectl delete pvc relay-data -n camouflage
Backup Kubernetes Data
# Backup ConfigMaps
kubectl get configmap relay-config -n camouflage -o yaml > relay-config-backup.yaml
# Backup Secrets
kubectl get secret relay-secrets -n camouflage -o yaml > relay-secrets-backup.yaml
# Backup PersistentVolumeClaim data
kubectl exec -n camouflage deployment/camouflage-relay -- tar czf - /data > relay-data-backup.tar.gz
Gateway
Gateways provide internet access for VPN clients.
Docker
# Stop and remove container
docker stop camouflage-gateway
docker rm camouflage-gateway
# Remove the image
docker rmi camouflagenetworks/camouflage-gateway:latest
Docker Compose
# Remove gateway service
docker-compose rm -s -v gateway
# Or remove all services
docker-compose down -v
Multiple Gateways
If you deployed multiple gateways:
# List all gateway containers
docker ps -a | grep camouflage-gateway
# Remove all gateways
docker ps -a | grep camouflage-gateway | awk '{print $1}' | xargs docker rm -f
# Remove all gateway images
docker images | grep camouflage-gateway | awk '{print $3}' | xargs docker rmi
CLI Tools
If you installed CLI tools separately:
# Remove binaries
sudo rm /usr/local/bin/camouflage-client
sudo rm /usr/local/bin/camouflage-daemon
sudo rm /usr/local/bin/camouflage-cli
sudo rm /usr/local/bin/camouflage-relay
# Remove configuration
rm -rf ~/.camouflage
Clean Docker Environment
Remove all Camouflage-related Docker resources:
# Stop all Camouflage containers
docker ps -a | grep camouflage | awk '{print $1}' | xargs docker stop
# Remove all Camouflage containers
docker ps -a | grep camouflage | awk '{print $1}' | xargs docker rm
# Remove all Camouflage images
docker images | grep camouflage | awk '{print $3}' | xargs docker rmi
# Remove all Camouflage volumes (WARNING: Deletes all data!)
docker volume ls | grep camouflage | awk '{print $2}' | xargs docker volume rm
# Remove all Camouflage networks
docker network ls | grep camouflage | awk '{print $1}' | xargs docker network rm
Verification
Verify complete removal:
Docker
# Check for running containers
docker ps | grep camouflage
# Check for stopped containers
docker ps -a | grep camouflage
# Check for images
docker images | grep camouflage
# Check for volumes
docker volume ls | grep camouflage
Kubernetes
# Check namespace
kubectl get namespace camouflage
# Check all resources
kubectl get all -n camouflage
# Check volumes
kubectl get pvc -n camouflage
Troubleshooting
Container Won't Stop
# Force stop
docker stop -t 1 camouflage-ce
# Or force kill
docker kill camouflage-ce
Volume Won't Delete
# Check what's using it
docker ps -a --filter volume=camouflage_data
# Force remove
docker volume rm -f camouflage_data
Permission Errors
# Ensure you have docker permissions
sudo usermod -aG docker $USER
# Or run with sudo
sudo docker rm camouflage-ce
Orphaned Resources
# Clean up orphaned volumes
docker volume prune
# Clean up unused images
docker image prune -a
# Clean up everything unused (CAREFUL!)
docker system prune -a --volumes
Migration to New Server
If you're moving to a new server instead of uninstalling:
Export from Old Server
# 1. Backup data
docker run --rm \
-v camouflage_data:/data \
-v $(pwd):/backup \
alpine tar czf /backup/camouflage-migration.tar.gz -C /data .
# 2. Copy to new server
scp camouflage-migration.tar.gz user@newserver:/tmp/
Import on New Server
# 1. Create volume
docker volume create camouflage_data
# 2. Restore backup
docker run --rm \
-v camouflage_data:/data \
-v /tmp:/backup \
alpine tar xzf /backup/camouflage-migration.tar.gz -C /data
# 3. Start container
docker run -d \
--name camouflage-ce \
-p 9443:9443 \
-p 61700:61700/udp \
-p 61701:61701/udp \
--cap-add=NET_ADMIN \
--cap-add=NET_RAW \
-v camouflage_data:/data \
camouflagenetworks/camouflage-ce:latest
# 4. Old server can now be safely decommissioned
Need Help?
If you encounter issues:
- Check container logs:
docker logs camouflage-ce - Visit GitHub Issues
- Contact support@camouflagenetworks.com