Free & Open Source
Project announcement: Free and Open Source

Getting Started

Simpleye is an easy‑to‑use, self‑hosted dashboard for monitoring IP cameras — no cloud, no vendor lock‑in. It now includes recording, a review timeline, and the ability to make, save, and download clips.

If no users exist, Simpleye will walk you through creating the first admin account on first run.

Before you begin

Get up and running

  1. Clone the repository

    git clone https://github.com/TMills343/Simpleye
    cd Simpleye
  2. Configure environment variables

    docker-compose automatically loads variables from the .env file in the project root and injects them into the web container via the environment section in docker-compose.yml. No env_file is required.

    Minimum variables:

    VariableExamplePurpose
    MONGO_URImongodb://mongo:27017MongoDB connection string
    MONGO_DBsimpleyeDatabase name
    FLASK_SECRET_KEYchange-meSecret key for Flask session

    Example .env:

    MONGO_URI=mongodb://mongo:27017
    MONGO_DB=simpleye
    FLASK_SECRET_KEY=change-me

    Tip: In Portainer or other orchestrators, define MONGO_URI, MONGO_DB, and FLASK_SECRET_KEY as environment variables for the stack/service. The application reads these directly from the container environment. No .env file is needed in the container.

  3. Start the stack

    # If you want docker-compose to also start the bundled MongoDB service,
    # enable the `local-db` profile (recommended for local use):
    docker compose --profile local-db up -d --build

    Helpful commands:

    # Tail logs for all services
    docker compose logs -f
    
    # Stop and remove containers
    docker compose down
  4. Open the app

    • Visit http://localhost:8000
    • Complete the first‑run flow to create the initial admin user, then add cameras

What Docker Compose runs

Notes:

Local development (without Docker)

  1. Python 3.12 recommended.
  2. Create and activate a virtualenv.
  3. pip install -r requirements.txt
  4. Create a .env file and set MONGO_URI to a MongoDB instance you have running locally. You may also set MONGO_DB and FLASK_SECRET_KEY.
  5. Run the app: python app.py then browse http://localhost:8000

Common tweaks

Troubleshooting

Recording and review

  1. Configure cameras
  1. Storage & retention
  1. Review page
  1. Clips

Routes

Notes

Static assets structure

Next steps