Skip to content
 
 

Latest commit

 

History

255 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌊 Flowcase

Flowcase License Podman

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 Podman containers.

Features

Open-Source Secure Streaming User-Friendly Customizable Multi-Platform
Completely free and community-driven Stream applications securely using Podman 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

  1. Clone the repository:

    git clone https://github.com/flowcase/flowcase.git
    cd flowcase
  2. Create .env file:

    cp .env.example .env
    # Edit .env with your configuration
  3. Start Flowcase:

    podman compose up -d
  4. View logs for credentials:

    podman compose logs -f
  5. Access Flowcase:

    • Open http://localhost or https://localhost
    • Use the default admin credentials shown in the logs

Prerequisites

Before installing Flowcase, ensure you have:

  • Podman (rootful, version 4.x or later)

    • Install Podman
    • Verify: podman --version
    • Enable the Podman-compatible API socket: sudo systemctl enable --now podman.socket
  • Podman Compose (podman compose plugin, or podman-compose)

    • Verify: podman compose version

Docker also works (docker compose), but Flowcase targets Podman to avoid Docker Hub pull-rate limits.

  • System Requirements:

    • At least 2GB RAM
    • 10GB free disk space
    • Network access for downloading images
  • Permissions:

    • Linux/Mac: User in podman/docker group or sudo access
    • Windows: Podman Desktop running with WSL2

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 admin@example.com Yes
CA_SERVER ACME certificate authority Staging: https://acme-staging-v02.api.letsencrypt.org/directory
Production: 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
ADMIN_EMAIL=admin@example.com
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
ADMIN_EMAIL=admin@yourdomain.com
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)

  1. Navigate to http://localhost or https://localhost
  2. Use the default credentials displayed in the terminal logs:
    • Username: admin
    • Password: <random-generated-password>

With Authentik (Optional - Requires Setup)

Authentik integration is disabled by default. To enable it:

  1. Configure Authentik (see SETUP.md for detailed steps):

    • Access Authentik Admin: https://authentik.localhost
    • Create a Proxy Provider
    • Create an Application
    • Configure the Outpost
  2. 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: podman compose restart web nginx traefik
  3. 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
podman compose up -d

# View logs
podman compose logs -f

# View logs for specific service
podman compose logs -f web

# Stop Flowcase
podman compose down

# Restart services
podman compose restart

# Check service status
podman 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
podman compose logs

# Check service status
podman compose ps

Can't Access Application

  • Ensure containers are running: podman compose ps
  • Check nginx logs: podman compose logs nginx
  • Try http://localhost instead of https://localhost

Certificate Warnings

For localhost development, certificate warnings are expected. For production:

  • Use a proper domain name
  • Update DOMAIN in .env
  • Ensure DNS points to your server

Reset Everything

⚠️ Warning: This will delete all data!

podman compose down -v
podman compose up -d

For more troubleshooting help, see SETUP.md.

Contributing

Contributions are welcome! Please feel free to:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. 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

Roadmap

  • Production-ready release
  • Upgrade/migration support
  • Additional authentication providers
  • Enhanced container management
  • Performance optimizations
  • Additional documentation

Made with ❤️ by the Flowcase Team

About

Flowcase is a free and completely open-source alternative to Kasm Workspaces, enabling secure container streaming for your applications.

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages