Modern Vue 3 web interface for FlatRun container orchestration.
FlatRun UI provides a user-friendly dashboard for managing Docker deployments through the FlatRun Agent. It offers real-time monitoring, container management, and a streamlined deployment workflow.
- Deployment Management - Create, start, stop, and delete Docker Compose deployments
- Container Monitoring - Real-time status, resource usage, and health checks
- Log Viewer - Live streaming logs with search and filtering
- Docker Resource Management - Images, volumes, and networks overview
- SSL Certificate Tracking - Monitor certificate expiration and status
- Quick App Templates - Deploy common applications with pre-configured templates
- System Health Dashboard - CPU, memory, and disk usage monitoring
- JWT Authentication - Secure API key-based authentication
- Framework: Vue 3 with Composition API
- Language: TypeScript
- Build Tool: Vite
- State Management: Pinia
- Routing: Vue Router
- UI Components: PrimeVue
- HTTP Client: Axios
- Node.js 18+ and npm
# Install dependencies
npm install
# Run development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run previewui/
├── src/
│ ├── assets/ # Static assets and global styles
│ ├── components/ # Reusable Vue components (DataTable, etc.)
│ ├── layouts/ # Page layouts (DashboardLayout)
│ ├── views/ # Page components (HomeView, DeploymentsView, etc.)
│ ├── stores/ # Pinia stores (auth, deployments)
│ ├── router/ # Vue Router configuration
│ ├── services/ # API client services (axios instances)
│ ├── types/ # TypeScript type definitions
│ ├── App.vue # Root component
│ └── main.ts # Application entry point
├── public/ # Public static files
└── index.html # HTML entry point
Create a .env.local file to configure the API connection:
# FlatRun Agent API URL
VITE_API_URL=http://localhost:8090For production deployments:
VITE_API_URL=https://your-server.com/apiThe UI requires a running FlatRun Agent instance. See the FlatRun Agent repository for installation instructions.
- Ensure the agent is running and accessible
- Configure
VITE_API_URLto point to the agent's API endpoint - Use the API key configured in the agent's
config.ymlto authenticate
If running the UI on a different domain/port than the agent, ensure the agent's CORS settings include your UI URL:
# In agent's config.yml
api:
enable_cors: true
allowed_origins:
- http://localhost:5173 # Development
- https://your-ui-domain.com # Productionnpm run dev- Start development server (http://localhost:5173)npm run build- Build for productionnpm run preview- Preview production build locallynpm run lint- Run ESLintnpm run format- Format code with Prettier
npm run buildThis creates a dist/ directory with optimized static files.
The built files can be served by any static file server:
With Nginx:
server {
listen 80;
server_name flatrun.example.com;
root /var/www/flatrun-ui/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://localhost:8090;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}With Docker:
FROM nginx:alpine
COPY dist/ /usr/share/nginx/html/
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80- Verify the agent is running:
systemctl status flatrun-agent - Check
VITE_API_URLis correct in your.env.local - Ensure CORS is configured if running on different domains
- Verify the API key matches the agent's configuration
- Check browser console for specific error messages
- Ensure JWT secret is properly set in agent config
- Confirm the agent's
deployments_pathis accessible - Check that deployments have valid
docker-compose.ymlfiles
MIT License - See LICENSE file