🌊 Flowcase
A cutting-edge open-source container streaming platform
[!CAUTION] This project is still in development and is not yet ready for production use. We do not currently support upgrading from older versions. Please use with caution.
What is Flowcase?
Flowcase is a free and completely open-source alternative to Kasm Workspaces, enabling secure container streaming for your applications. Stream desktop applications, development environments, and more through your web browser using Docker containers.
Features
| Open-Source | Secure Streaming | User-Friendly | Customizable | Multi-Platform |
|---|---|---|---|---|
| Completely free and community-driven | Stream applications securely using Docker | Easy to deploy and manage | Supports customization for various use cases | Supports Windows, Linux, and macOS |
Quick Start
Option 1: Automated Installation (Recommended)
Windows (PowerShell):
.\install.ps1
Linux/Mac:
chmod +x install.sh
./install.sh
The installation script will:
- ✅ Check prerequisites
- ✅ Generate secure passwords
- ✅ Create configuration files
- ✅ Start all services
- ✅ Display access information
Option 2: Manual Installation
-
Clone the repository:
git clone https://github.com/flowcase/flowcase.git cd flowcase -
Create
.envfile:cp .env.example .env # Edit .env with your configuration -
Start Flowcase:
docker compose up -d -
View logs for credentials:
docker compose logs -f -
Access Flowcase:
- Open
http://localhostorhttps://localhost - Use the default admin credentials shown in the logs
- Open
Prerequisites
Before installing Flowcase, ensure you have:
-
Docker (version 20.10 or later)
- Download Docker Desktop
- Verify:
docker --version
-
Docker Compose (version 2.0 or later)
- Usually included with Docker Desktop
- Verify:
docker compose version
-
System Requirements:
- At least 2GB RAM
- 10GB free disk space
- Network access for downloading images
-
Permissions:
- Linux/Mac: User in
dockergroup orsudoaccess - Windows: Docker Desktop running with WSL2
- Linux/Mac: User in
Documentation
-
SETUP.md - Comprehensive setup guide with detailed instructions
- Configuration options
- Authentik integration
- Troubleshooting
- Production deployment
-
SECURITY.md - Security information and reporting
Configuration
Environment Variables
Create a .env file with the following variables:
| Variable | Description | Example | Required |
|---|---|---|---|
DOMAIN |
Your domain name | localhost or flowcase.example.com |
Yes |
ADMIN_EMAIL |
Email for Let's Encrypt notifications | [email protected] |
Yes |
CA_SERVER |
ACME certificate authority | Staging: https://acme-staging-v02.api.letsencrypt.org/directoryProduction: https://acme-v02.api.letsencrypt.org/directory |
Yes |
PG_PASS |
PostgreSQL database password | Secure random string | Yes |
AUTHENTIK_SECRET_KEY |
Authentik secret key | Secure random string (min 32 chars) | Yes |
Generate secure values:
# Generate PostgreSQL password
openssl rand -base64 24
# Generate Authentik secret key
openssl rand -base64 32
Local Development
For local development, use these settings:
DOMAIN=localhost
[email protected]
CA_SERVER=https://acme-staging-v02.api.letsencrypt.org/directory
PG_PASS=<generate-secure-password>
AUTHENTIK_SECRET_KEY=<generate-secure-key>
Production
For production deployment:
DOMAIN=flowcase.yourdomain.com
[email protected]
CA_SERVER=https://acme-v02.api.letsencrypt.org/directory
PG_PASS=<strong-random-password-32-chars>
AUTHENTIK_SECRET_KEY=<strong-random-key-50-chars>
Accessing Flowcase
Default Access (Without Authentik)
- Navigate to
http://localhostorhttps://localhost - Use the default credentials displayed in the terminal logs:
- Username:
admin - Password:
<random-generated-password>
- Username:
With Authentik (Optional - Requires Setup)
Authentik integration is disabled by default. To enable it:
-
Configure Authentik (see SETUP.md for detailed steps):
- Access Authentik Admin:
https://authentik.localhost - Create a Proxy Provider
- Create an Application
- Configure the Outpost
- Access Authentik Admin:
-
Enable Authentik in docker-compose.yml:
- Uncomment the middleware line (line 41):
- traefik.http.routers.flowcase.middlewares=authentik@file - Uncomment the flag (line 24):
--traefik-authentik - Restart:
docker compose restart web nginx traefik
- Uncomment the middleware line (line 41):
-
Access Flowcase:
https://localhost(will redirect to Authentik for login)
[!NOTE] Authentik is disabled by default for easier initial setup. Follow the complete setup guide in SETUP.md to enable it.
Common Commands
# Start Flowcase
docker compose up -d
# View logs
docker compose logs -f
# View logs for specific service
docker compose logs -f web
# Stop Flowcase
docker compose down
# Restart services
docker compose restart
# Check service status
docker compose ps
Architecture
Flowcase consists of the following components:
- Flowcase Web: Main application server (Flask)
- Nginx: Reverse proxy for Flowcase
- Traefik: Reverse proxy and load balancer with automatic HTTPS
- Authentik: Identity provider (optional, for authentication)
- PostgreSQL: Database for Authentik
- Redis: Cache for Authentik
Troubleshooting
Container Won't Start
# Check logs
docker compose logs
# Check service status
docker compose ps
Can't Access Application
- Ensure containers are running:
docker compose ps - Check nginx logs:
docker compose logs nginx - Try
http://localhostinstead ofhttps://localhost
Certificate Warnings
For localhost development, certificate warnings are expected. For production:
- Use a proper domain name
- Update
DOMAINin.env - Ensure DNS points to your server
Reset Everything
⚠️ Warning: This will delete all data!
docker compose down -v
docker compose up -d
For more troubleshooting help, see SETUP.md.
Contributing
Contributions are welcome! Please feel free to:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
Please read our contributing guidelines and code of conduct before submitting.
Security
- Security Issues: Please report security vulnerabilities to the maintainers privately (see SECURITY.md)
- Updates: Keep your installation updated with the latest releases
- Credentials: Always use strong, randomly generated passwords
- Production: Follow the production deployment checklist in SETUP.md
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
- Documentation: Check SETUP.md for detailed guides
- Issues: Open an issue on GitHub
- Discussions: Join discussions on GitHub Discussions
Roadmap
- [ ] Production-ready release
- [ ] Upgrade/migration support
- [ ] Additional authentication providers
- [ ] Enhanced container management
- [ ] Performance optimizations
- [ ] Additional documentation