Server Directory Structure
This reference describes the file system layout on an Appliku-managed server. Understanding this structure is helpful when debugging, running manual commands, or inspecting application state via SSH.
Overview
All Appliku-managed files live under the /home/app/ directory, owned by the app user.
/home/app/
├── {app-name}/ # One directory per application
│ ├── docker-compose.yml # Generated Docker Compose file
│ ├── code/ # Application source code
│ └── env/ # Environment variable exports
├── _cron_logs/ # Cron job output logs
│ └── {job_id}/ # One directory per cron job
├── nginx/ # Nginx configuration
│ ├── conf.d/ # Per-application Nginx configs
│ └── ssl/ # SSL certificates
└── ...
Application Directories
/home/app/APP-NAME/
Each deployed application gets its own directory. The directory name matches the application's slug (lowercase, hyphenated).
/home/app/my-django-app/
├── docker-compose.yml # Auto-generated; do not edit manually
├── code/ # Your application source code
└── env/
└── envs_export.sh # Environment variables as shell exports
docker-compose.yml
This file is auto-generated by Appliku on each deployment. It defines:
- Application service containers (web, worker, etc.)
- Database containers
- Volumes
- Network configuration
- Resource limits
Do not manually edit docker-compose.yml. Your changes will be overwritten on the next deployment. Use the Appliku dashboard or appliku.yml to configure your application.
code/
Contains your application's source code, pulled from your Git repository during deployment.
env/
Contains envs_export.sh, a shell script that exports your application's environment variables. This file is sourced during the Docker build to make environment variables available at build time.
Docker Volumes
Persistent data (databases, uploaded files) is stored in Docker volumes. These survive container restarts and redeployments.
Default volume location:
/var/lib/docker/volumes/
To list volumes for an application:
docker volume ls | grep {app-name}
To inspect a volume's mount point:
docker volume inspect {volume-name}
Nginx Configuration
/home/app/nginx/conf.d/
Contains per-application Nginx configuration files. Each application with a web process gets its own .conf file that defines:
- Server blocks for each domain
- SSL certificate paths
- Proxy pass rules to the application container
- Static file serving rules (for volumes with
urlconfigured)
/home/app/nginx/ssl/
Contains SSL certificates and private keys provisioned by Let's Encrypt.
Nginx configuration files are auto-generated. Use the Appliku dashboard to manage domains and SSL settings rather than editing these files directly.
Cron Job Logs
/home/app/_cron_logs/JOB_ID/
Each cron job writes its stdout and stderr output to log files in this directory.
To view cron job output:
ssh app@<server-ip>
ls /home/app/_cron_logs/
# Find your job ID, then:
cat /home/app/_cron_logs/{job_id}/stdout.log
cat /home/app/_cron_logs/{job_id}/stderr.log
Useful Commands
When SSHed into the server as the app user:
# List all deployed applications
ls /home/app/
# View an application's Docker Compose config
cat /home/app/{app-name}/docker-compose.yml
# Check running containers
docker ps
# View logs for a specific container
docker logs {container-name} --tail 100
# Check disk usage by Docker
docker system df
# List Docker volumes
docker volume ls