sethucms
Open source · MIT licence · Version 0.1.0

Use the database you already have.

SethuCMS is a content management system that sits in front of your own PostgreSQL, MySQL, MongoDB or Firestore. You run it next to your database, so your data stays where it is.

Your data never passes through usOne person, one login: Google, GitHub or an authenticator

Your content.
Your database.

Connect a database, choose which tables become content, and give your team a clean place to edit, review and publish. Your website or app reads the result through one steady API, whichever database sits underneath.

How it works

Three steps, on your own machine.

There is nothing to sign up for. The gateway is a program you run. The admin panel is a web page that talks to it.

  1. Run the gateway

    Start it next to your database, on your computer or a server. The first start prints a one-time admin token.

  2. Connect your database

    Open the admin, add a connection, and start read-only. Choose which tables to expose as content.

  3. Add your team

    Invite teammates by e-mail with a role. They sign in with Google or GitHub, or an authenticator code on your own server. Then revoke the first token.

cd sethucms
sh scripts/build-all.sh
sh scripts/run-local.sh   # http://127.0.0.1:8080
What’s new

More ways to work with your content.

Recent additions. Each one is covered by tests; the hosted pieces are still being tried on a real deployment.

Projects

One person can have several projects, each with its own connections, people and content, and switch between them from the sidebar. Invite teammates by e-mail.

Schema as code

Describe fields, labels, editors and which fields to hide in a file that lives with your code. It can tighten rules; it never loosens what your database enforces.

Files and images

Upload files with type checks, content sniffing, metadata stripping and storage limits. Files stay private unless you publish them.

Google and GitHub sign-in

Teammates sign in with an account they already have. Roles still decide what each person can do.

Choose the fields you see

Show or hide fields while editing, and switch any field to edit as raw code when you need to.

Smaller, clearer code

Every source file stays under 700 lines, so the project is easier to read, review and trust.

Packages

Install only what you need.

SethuCMS comes as small packages on npm: a client for your app, one adapter for each database, and building blocks for your own tools.

Security first

Built so the safe way is the default.

One login per person

Sign in with Google or GitHub, or with an authenticator code on your own server. No shared password.

Roles that mean something

Admins manage connections and people. Editors work on content. Viewers read published content only.

Read-only first

A new connection starts read-only. New tables stay out of the API until someone reviews them.

A record of every change

An audit log shows who changed what and when, and it is built so tampering shows.

Hashed tokens

API tokens are stored only as hashes and are shown once. Replace one and the old one keeps working for an hour.

You hold the keys

The gateway runs on your side. Your database passwords stay encrypted on your own server.

Where it stands

Early, and honest about it.

SethuCMS is version 0.1.0. This is what has been tested, and what has not. Projects, hosted sign-in and file uploads are tested with simulated services and are still being tried on a live deployment.

DatabaseStatus
PostgreSQLTested on the real database
SQLiteTested on the real database
MySQL and MariaDBTested on compatible servers
MongoDBTested on a compatible server
FirestoreExperimental
SQL ServerNot supported yet

Try it on a copy of your data.

It is free software under the MIT licence, with no warranty. Start read-only, and tell us what breaks.