{"id":18600818,"url":"https://github.com/octet-stream/eri","last_synced_at":"2025-10-05T22:06:33.229Z","repository":{"id":38963512,"uuid":"59134617","full_name":"octet-stream/eri","owner":"octet-stream","description":"Minimalistic open source blog engine","archived":false,"fork":false,"pushed_at":"2025-04-29T17:35:30.000Z","size":4665,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-29T18:40:12.995Z","etag":null,"topics":["blog-engine","mariadb","mikro-orm","react-router","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/octet-stream.png","metadata":{"files":{"readme":"readme.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"license","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-05-18T16:51:39.000Z","updated_at":"2025-04-29T17:35:33.000Z","dependencies_parsed_at":"2025-04-29T18:39:13.631Z","dependency_job_id":null,"html_url":"https://github.com/octet-stream/eri","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octet-stream%2Feri","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octet-stream%2Feri/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octet-stream%2Feri/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octet-stream%2Feri/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/octet-stream","download_url":"https://codeload.github.com/octet-stream/eri/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254573589,"owners_count":22093731,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blog-engine","mariadb","mikro-orm","react-router","typescript"],"created_at":"2024-11-07T02:05:44.253Z","updated_at":"2025-10-05T22:06:28.152Z","avatar_url":"https://github.com/octet-stream.png","language":"TypeScript","readme":"# eri\n\nMinimalistic open source blog engine.\n\nThis project built with [React Router](https://reactrouter.com/), [Hono](https://hono.dev), [Mikro ORM](https://mikro-orm.io/), [Better Auth](https://www.better-auth.com/), [Tailwind CSS](https://tailwindcss.com/docs) and [shadcn/ui](https://ui.shadcn.com/).\n\n## Database schema setup\n\nAs the project is currently in prototyping stage, the only way to create database schema is to run `pnpm mikro-orm-esm schema:update -r` command.\nThis approach will be replaced with migrations.\n\n## Environment variables\n\nEri automatically picks up `.env` files from one of this souces: `.env.\u003cmode\u003e.local`, `.env.\u003cmode\u003e`, `.env.local`, `.env` (where mode is the value of the `process.env.NODE_ENV`).\nIf none of these exists, then Eri will fallback to `process.env` object.\n\n## Development setup\n\nThere's two ways to set up the project for local development: You can either install dependencies manually on your machine, or you can use Devcontainers\n\n### Devenv (Nix)\n\nBefore you begin, you'll need to install [Nix](https://nixos.org/) and [devenv](https://devenv.sh/) following their [instructions](https://devenv.sh/getting-started/#installation).\nOptionally you can install [direnv](https://direnv.net/)\n\n1. Activate shell either via:\n   - *Dir*env: `direnv allow`\n   - *Dev*env: `devenv shell`\n2. Start MariaDB server: `devenv up` - this will start services in the foreground. If you wish run services in the background, use `-d` flag like this: `devenv up -d`\n3. To start dev server, run following command: `pnpm dev`\n\nIf you wish to stop services, run `devenv processes down`\n\n### Devcontainers\n\nYou can run development environment in devcontainers using following steps:\n\n1. Install [Devcontainers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) extension to your VSCode\n2. Once you've installed, you'll be prompted to \"Reopen the folter in a container\" or you can clone the repository in Docker volume for [better I/O performance](https://code.visualstudio.com/docs/devcontainers/containers#_quick-start-open-a-git-repository-or-github-pr-in-an-isolated-container-volume). If you're not prompted, then open command palette and choose \"Dev Containers: Open Folder in Container\" command.\n\nThis will setup Nix and start development shell with devenv.\n\nNote that `.devcontainers.json` is generated by `devenv`, so don't update it directly.\n\nAlternatively you can use [Devcontainers CLI](https://github.com/devcontainers/cli). For that you'll need:\n\n1. Install the CLI;\n2. Open the project's root in your terminal;\n3. Run the `devcontainer up --workspace-folder .` command. This will spin up a docker container for local development. Note that to install dependencies and run npm scripts (via pnpm) you'll need to use Devcontainer CLI.\n\nCheck out VSCode documentation to learn more: https://code.visualstudio.com/docs/devcontainers/containers\n\n### Manual setup\n\n1. First of all, you'll need to install MariaDB;\n2. Then clone this repository `git clone git@github.com:octet-stream/eri.git`;\n3. When it's done, install dependencies using `pnpm install` command;\n4. Create either `.env.development.local` or `.env.local` and add required configuration;\n5. Now you are able to run dev server. To do so, run `pnpm dev` command;\n6. Open http://localhost:5173/admin and create admin account (if it doesn't exists).\n\n## Production preview\n\n1. Create either `.env.production.local` or `.env.local` and add required configuration;\n2. To build the project, run `pnpm build`\n3. Once production build is finished, run `pnpm start`\n4. Open http://localhost:3000/admin and create admin account (if it doesn't exists).\n\n## Demo\n\nYou can run demo application with non-persistent database in just a few steps:\n\n1. Create `.env.demo.local` file and fill it with required parameters\n2. Run `pnpm demo.start` command\n3. Open http://localhost:3000/admin to create admin account\n\nNote that the demo lives in-memory, so when use stop it via `pnpm demo.stop` command you'll loose the data from this demo.\n\n## Commands\n\nList of available commands. These commands are accessible via pnpm.\n\n| Name                | Description                                                                                                                 |\n|---------------------|-----------------------------------------------------------------------------------------------------------------------------|\n| `build`             | Builds project for production                                                                                               |\n| `start`             | Starts production server                                                                                                    |\n| `dev`               | Starts Vite in dev mode                                                                                                     |\n| `dev.open`          | Starts Vite in dev mode and opens app in user's default browser                                                             |\n| `demo.start`        | Starts docker container with demo application. If you want to rebuild the app's image, run this command with `--build` flag |\n| `demo.stop`         | Stops demo application and removed container                                                                                |\n| `lint.types`        | Runs `tsc` to validate TypeScript types                                                                                     |\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctet-stream%2Feri","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foctet-stream%2Feri","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctet-stream%2Feri/lists"}