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 connections
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.
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.
Run the gateway
Start it next to your database, on your computer or a server. The first start prints a one-time admin token.
Connect your database
Open the admin, add a connection, and start read-only. Choose which tables to expose as content.
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:8080More 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.
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.
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.
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.
| Database | Status |
|---|---|
| PostgreSQL | Tested on the real database |
| SQLite | Tested on the real database |
| MySQL and MariaDB | Tested on compatible servers |
| MongoDB | Tested on a compatible server |
| Firestore | Experimental |
| SQL Server | Not 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.