selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

Magic logo

Self-host Magic

v24.1.5

Plain-English full-stack app builder with MCP tools

ReleaseOpen SourceMIT
Updated9 hours ago
LanguageC#
Setup difficultyModerate
Stars
1 204
RAM
at least 2 GB (4 GB recommended for the first-boot frontend build)
Ports
4444 (Backend API (Hyperlambda runtime and endpoints), published as 4444:4444), 80 (Dashboard frontend inside its container; the compose file publishes it as 5555 on the host)
Docker
servergardens/magic-backend
Install with Docker Compose
Chat Ops in the Magic dashboard, asked to create a full stack app, replying with the product decisions it needsThe Hyper IDE file editor screen of the Magic dashboardThe initial configuration wizard shown after first loginRunning generated Python code from Magic Cloud

What is Magic?

Should you self-host Magic?

Magic scores 51/100 on selfhost.directory (how scoring works) and ranks #14 of 17 in Low Code. It has 1 204 GitHub stars.

It shipped 10 stable releases in the past year. The latest, v24.1.5, came out on 26 October 2026. New versions land roughly every 1 days.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is MIT-licensed and written mostly in C#.

Its closest alternative on selfhost.directory is Appwrite (84/100, 57 787 stars). It scores higher overall, so compare the two before you pick. See Magic vs Appwrite side by side.

Features

  • AI agents with headless browser
  • AI chatbots trained on your content
  • Built-in static site and SPA hosting
  • CRUD API generation from database tables
  • Git Integration
  • MCP Server
  • Natural-language app generation
  • Online IDE and playground
  • OpenAPI and Swagger import
  • Role-based Access Control
  • Sandbox API endpoints
  • Sandboxed whitelisted code execution
  • Scheduled tasks and background jobs
  • SQL workbench
  • Visual web page editing

Magic README

How to install Magic

Install Magic with Docker Compose

Docker
curl -fsSL https://hyperlambda.dev/docker-compose.yaml | docker compose -f - up

Then open localhost:5555, point it at localhost:4444, and log in with root / root.

A fuller compose stack with nginx-proxy and Let's Encrypt can be cloned from the magic.deploy repository for VPS deployments.

How to configure Magic

  • DOMAINThe single line to edit in .do/cloud-init.yaml before pasting it as DigitalOcean droplet user data.

    The single line to edit in .do/cloud-init.yaml before pasting it as DigitalOcean droplet user data.

  • https-onlyIn the auth section: if true, JWT tokens are only verified over an SSL/TLS connection.

    In the auth section: if true, JWT tokens are only verified over an SSL/TLS connection.

    values: true, false

  • leveldebugLogging section: minimum logging level; anything from that level and above is logged.

    Logging section: minimum logging level; anything from that level and above is logged.

    values: debug, info, error, fatal, off

  • magic:authOverrides the default authentication and authorisation values for Magic.

    Overrides the default authentication and authorisation values for Magic.

  • magic:databasesDatabase connection strings as name/value pairs, plus the default database type (sqlite, mysql, pgsql, mssql).

    Database connection strings as name/value pairs, plus the default database type (sqlite, mysql, pgsql, mssql).

    values: sqlite, mysql, pgsql, mssql

  • magic:frontend:urlsCORS list of frontend URLs allowed to retrieve data from the backend, comma separated; the default allows all URLs.

    CORS list of frontend URLs allowed to retrieve data from the backend, comma separated; the default allows all URLs.

  • magic:oidcOne sub-section per single sign-on provider, keyed by provider name; each takes a client-id and, where required, a client-secret, issuer or tenant.

    One sub-section per single sign-on provider, keyed by provider name; each takes a client-id and, where required, a client-secret, issuer or tenant.

    values: google, github, linkedin, slack, microsoft, okta, auth0, keycloak

  • magic:smtpSMTP server used for sending emails, including the default from name and address.

    SMTP server used for sending emails, including the default from name and address.

  • secretIn the auth section: JWT secret used to generate a JWT signature.

    In the auth section: JWT secret used to generate a JWT signature.

  • valid-minutesIn the auth section: default number of minutes before a generated JWT token expires.

    In the auth section: default number of minutes before a generated JWT token expires.

Magic releases & version history

FAQ

How do I let users sign in with Google or GitHub?

Use the OpenID helper dialog to give the provider a client ID and, where required, a secret, then register the redirect URI it shows with that provider.

What is the Configuration component?

It lets you view and edit your cloudlet's appsettings.json configuration, covering SMTP, OpenAI, database connection strings and authentication settings.

Is AI-generated code safe to execute?

That is the purpose of the security model: Hyperlambda runs sandboxed and its callable vocabulary is whitelisted per role, so generated code can only invoke functions you explicitly allowed.

What happens if AINIRO disappears?

Everything already generated keeps running as MIT-licensed code on your hardware; you would only lose the hosted generator's ability to produce new code.

Do I have to learn Hyperlambda?

No — the generator writes it from plain English and the dashboard prompt bars cover most workflows, though reading it is easier than writing it.

What database does it use?

SQLite ships as the built-in store, with full support for MySQL, PostgreSQL, MariaDB and SQL Server without extra connectors.

How is this different from Lovable or Bolt?

Those tools generate a frontend and leave the backend to a third-party service, while Magic generates and runs the whole backend, needs no deploy step before testing, and can be self-hosted under MIT.

Can I run it completely on my own hardware?

Yes — the database, API, frontend, scheduler and chatbots all run inside your own containers on your own machine.

Do I need an OpenAI API key?

Only for AI code generation and semantic embeddings retrieval. Driving Magic over MCP needs no key, and Ollama or Hugging Face plugins plus BM25 keyword retrieval avoid OpenAI entirely.

More in Web Development

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…