Show HN: Ramasite,一个自包含的 Laravel/Filament/SQLite CMS
Show HN: Ramasite, a Self-Contained Laravel/Filament/SQLite CMS

原始链接: https://github.com/DaleFranks/ramasite

RamaSite 是一款免费、开源、自包含的 PHP CMS,名称取自阿瑟·C·克拉克的《拉玛》。它将所有内容存储在一个 SQLite 数据库和一个 uploads 文件夹中,无需数据库服务器、外部服务、命令行或配置文件编辑。安装方式是将发布 zip 上传到 Apache/cPanel 主机并完成浏览器设置界面;升级时会自动更新数据库。它包含 Markdown 页面/博客/文章、菜单、卡片/模块/轮播、图片/文件库、嵌入 YouTube、表单、主题、重定向、sitemap、robots.txt、RSS、分析/搜索验证、多管理员、双因素认证、密码重置、HTTPS 强制和一键备份。要求:PHP 8.4.1+(含指定扩展)、SQLite 3.26+、Apache mod_rewrite。设置需要 setup-key.txt 中的密钥。管理后台位于 /admin。基于 Laravel/Filament 构建;由 Dale Franks 以 MIT 许可证发布。

Hacker News 帖子宣布了 Ramasite,一个由 DaleFranks 使用 Claude Code 在约两周内构建的、基于 Laravel/Filament/SQLite 的自包含 CMS。这位作者自 1980 年以来就是经验丰富的开发者,他创建它是为了在使用 PHP 共享托管时避开 WordPress 的安全与插件管理痛点。他此前曾用 ASP.NET 花六个月构建了 .Blog CMS,后来使用 Grav,速度变慢。Ramasite 从基于平面文件的 Markdown CMS 演变为基于 SQLite 的系统,现在运行着两个公开站点。一位评论者同意 WordPress 过于臃肿/过时,描述了他们自己的浏览器端 JS CMS 以及用 Web Components 让站点可编辑的计划,并认为 AI 辅助的结果可测试,而现代浏览器支持静态原生 JS。DaleFranks 对这项工作表示兴趣。
相关文章

原文

A little world of your own.

The name comes from Arthur C. Clarke's novel Rendezvous with Rama (1973). In the book, Rama is a sealed, cylindrical, self-contained world that carries everything it needs inside it. That matches the product's core design:

  • All content lives in a single SQLite database file, and images go in an uploads folder inside the site.
  • There is no database server, outside service, command line or settings file to edit.
  • Installation means uploading one release zip to ordinary shared hosting (Apache with cPanel) and completing the setup screen.
  • Backups, database updates after an upgrade, the sitemap, redirects and theming are all handled from inside the admin.

Like Clarke's Rama, which inspired the name, RamaSite is a complete world of its own.

What it does:

  • Pages, blogs and posts written in Markdown, with a menu built from the pages
  • Cards, modules and sliders to build up pages without writing HTML
  • Image and file libraries where images, PDFs and other files can be replaced without touching the pages that use them, embedded YouTube videos, and forms with stored submissions and email notifications
  • A Theme screen for the logo, colors, a curated list of Google Fonts, headings, header, footer and an optional top bar, with no template code to edit
  • Redirects (added automatically when a page moves), an automatic sitemap, robots.txt and an RSS feed for each blog
  • Analytics and search engine verification: Google Analytics, Tag Manager, Meta Pixel, Search Console and Bing from just an ID, or any other service's code, with your own visits left out
  • Several admins, optional two-step login, password reset by email, and HTTPS enforced on HTTPS sites
  • One-click backups, and the database updates itself after an upgrade

The Insert image popup, listing images from the library with thumbnails

The Theme screen's Fonts tab, with a live sample under each font

  • PHP 8.4.1 or newer, with these extensions (most hosts have them all): pdo_sqlite, mbstring, intl, openssl, fileinfo, tokenizer, ctype, dom, xmlreader, filter and session. The zip extension is also needed for the Backup screen.
  • SQLite 3.26 or newer, the database library PHP uses (3.26 is what Red Hat, AlmaLinux and CloudLinux 8 servers have)
  • Apache with mod_rewrite (standard on cPanel hosting)

If something is missing, the site says what on its first visit, in words you can pass on to your host.

  1. Download ramasite-<version>.zip from the Releases page. Use that file, not the "Source code" downloads, which can't run on their own.
  2. Unzip it. Upload everything inside the ramasite folder into your site's web folder (usually public_html), or into a subfolder of it.
  3. Open the site in your browser. It moves to https:// by itself if your site has a working certificate, and warns you if it doesn't.
  4. Fill in the setup screen. It first asks for a setup key, which proves the site is yours: open setup-key.txt in the folder you uploaded to, using your host's file manager or FTP, and paste in what it holds. Then enter the site's name, and your name, email address and password. The key file is deleted when setup finishes.

The admin is at /admin. See Getting started for what to do next.

If you have Composer and PHP on the machine that will run the site, you can install from Packagist in place of steps 1 and 2:

composer create-project dalefranks/ramasite mysite --no-dev

That fetches the same files as the release zip, with the vendor folder. As with the zip, the site writes its settings file and creates its database on its first visit. Put the mysite folder where your web server serves it, then carry on from step 3. To upgrade later, upload a newer release zip's files over it, as below.

  1. On the Backup screen, download a backup.
  2. Upload the new release's files over the old ones.
  3. Open the site. On that first visit it updates its database by itself, after saving a copy of it. If that can't be done, the site keeps working as it was and the admin shows why; see Upgrading.

Your pages, images, settings and accounts aren't in the release zip, so uploading a new version never overwrites them.

How each part of the admin works: docs.

RamaSite is free and open-source software under the MIT License. Copyright (c) 2026 Dale Franks.

RamaSite is built with Laravel and Filament, using SQLite.

composer install
cp .env.example .env
php artisan key:generate
php artisan migrate
php artisan test

Releases are built by GitHub Actions when a tag starting with v is pushed: the tests and a package security check run, then the zip (with the vendor folder) is published. A tag with a hyphen, such as v0.4.0-alpha, is published as a pre-release.

联系我们 contact @ memedata.com