VersionVault is a simple dashboard that provides a consolidated view of the update status for your Docker applications. Inspired by WUD (What's Up Docker), but with a different visual representation. I created this because I wanted a single pane of glass to monitor my homelab Docker apps more effectively.
Disclaimer: I'm not a programmer, just a homelab enthusiast. This project was created with the help of Claude 3.5 based on output from WUD's API.
- Single-page dashboard displaying Docker application update statuses.
- Connects to WUD's API to retrieve the latest version information.
- Clear visual representation of which applications are up to date.
- Light/Dark Mode support
- Traefik integration for easy HTTPS access
- Running instance of WUD (What's Up Docker) to provide the API.
- Docker and Docker Compose
- (Optional) Traefik for reverse proxy with HTTPS
- Docker network
proxy
(if using Traefik)
-
Clone the repository:
git clone https://github.com/gezuka77/versionvault.git cd versionvault
-
Create required network (if using Traefik):
docker network create proxy
-
Configure your environment:
Edit the
docker-compose.yml
file to set theWUD_API_URL
environment variable to point to your WUD API endpoint:environment: - WUD_API_URL=http://your-wud-server:3000/api/containers
-
Configure Traefik (Optional):
If you're using Traefik as a reverse proxy, the
docker-compose.yml
already includes the necessary labels. Update the domain name in the labels to match your environment:labels: - traefik.http.routers.versionvault.rule=Host(`your-domain.example.com`) - traefik.http.routers.versionvault-secure.rule=Host(`your-domain.example.com`)
-
Start the container:
docker-compose up -d
-
Access the dashboard:
Open your browser and navigate to:
http://localhost:2080
(if not using Traefik)https://your-domain.example.com
(if using Traefik with the configured domain)
The application supports two networking modes:
-
Simple Setup (without Traefik):
networks: proxy: driver: bridge
-
Production Setup (with Traefik):
networks: proxy: external: true
When using the production setup, create the network before starting the container:
docker network create proxy
Variable | Description | Default |
---|---|---|
WUD_API_URL |
URL of your WUD API endpoint | http://192.168.1.50:3000/api/containers |
The application exposes port 80 inside the container, which is mapped to port 2080 on the host by default. You can change this in the docker-compose.yml
file:
ports:
- "your-port:80"
The application uses a named volume for Nginx logs:
volumes:
- nginx_logs:/var/log/nginx
The Nginx configuration is stored in docker/default.conf.template
. This template file uses environment variables (like ${WUD_API_URL}
) which are automatically replaced when the container starts.
You can customize the look and feel by modifying the files in the app/static
directory:
app/static/css/styles.css
: Main stylesheetapp/static/js/main.js
: Main JavaScript fileapp/static/images/logo.png
: Application logoapp/static/images/favicon.ico
: Browser favicon
If the container fails to start, check the logs:
docker-compose logs versionvault
Common issues include:
- Incorrect WUD API URL
- Network connectivity issues between VersionVault and WUD
- Permission issues with volumes
- Missing
proxy
network when using Traefik
Make sure your WUD instance is running and accessible from the VersionVault container. You may need to adjust your network settings or firewall rules.
Since I'm not a programmer, contributions are welcome in the form of:
- Bug reports
- Feature requests
- Suggestions for improvements
- WUD (What's Up Docker) for providing the API.
- Claude 3.5 for assistance in developing this application.
- Nginx for the web server.
- Traefik for the reverse proxy.
Last checked: Apr 5, 2025, 10:02:32 AM