1
2
Fork
You've already forked nivose
0
The Nivose CMS https://nivose.xyz
  • Elixir 72.4%
  • JavaScript 15.5%
  • HTML 7.4%
  • SCSS 4%
  • Dockerfile 0.5%
  • Other 0.2%
2025年12月30日 16:32:01 +01:00
.vscode Fix some unit tests 2022年03月23日 23:26:07 +01:00
assets Small changes 2025年12月30日 16:32:01 +01:00
config Make the NIVOSE_DATA_PATH env variable runtime only by using MFA for Plug.Static configs + some other improvements 2025年09月25日 20:02:42 +02:00
lib Small changes 2025年12月30日 16:32:01 +01:00
priv Small changes 2025年12月30日 16:32:01 +01:00
rel/overlays/bin Multiple changes 2025年08月30日 11:38:34 +02:00
screenshots Multiple changes 2025年08月09日 23:49:31 +02:00
test Small changes 2025年12月30日 16:32:01 +01:00
.dockerignore Update README, add an INSTALL doc, and add .env files in .dockerignore 2025年09月21日 22:48:45 +02:00
.editorconfig Add prettier along eslint, and add an .editorconfig 2025年04月05日 19:21:22 +02:00
.env.sample Make the NIVOSE_DATA_PATH env variable runtime only by using MFA for Plug.Static configs + some other improvements 2025年09月25日 20:02:42 +02:00
.formatter.exs Some more formatting using mix format 2023年03月23日 00:17:50 +01:00
.gitignore Rename the project from Etaweb to Nivose 2025年07月31日 11:09:00 +02:00
.iex.exs Use alias instead of import in .iex.exs 2025年08月16日 09:20:05 +02:00
build_container_image.sh Make the NIVOSE_DATA_PATH env variable runtime only by using MFA for Plug.Static configs + some other improvements 2025年09月25日 20:02:42 +02:00
docker-compose.yml Improve docker-compose by using dynamic path using NIVOSE_DATA_PATH env variable 2025年09月25日 22:15:48 +02:00
Dockerfile Make the NIVOSE_DATA_PATH env variable runtime only by using MFA for Plug.Static configs + some other improvements 2025年09月25日 20:02:42 +02:00
Dockerfile.debian-experimental Update container builds 2025年08月01日 17:12:00 +02:00
entrypoint.sh Minor runtime and text change 2025年09月08日 20:41:43 +02:00
INSTALL.md update INSTALL.md 2025年09月22日 14:42:19 +02:00
LICENSE Init project with LICENSE 2022年02月02日 18:11:06 +01:00
mix.exs Add dev extra_applications to use :observer 2025年09月08日 21:06:08 +02:00
mix.lock Update to Phoenix 1.8 2025年08月18日 22:41:10 +02:00
README.md Update README, add an INSTALL doc, and add .env files in .dockerignore 2025年09月21日 22:48:45 +02:00

Liberapay donations License: AGPL v3

Nivose

A new kind of CMS for the Small Web.

Intro

Nivose brings together the effectiveness of a static website generator with the usability of a modern Web UI.

The main goals of Nivose:

  • Encourage to build simple, fast, and low footprint websites
  • Provide a friendly UI for non-developers
  • Be easily self-hostable

The main features available:

  • WYSIWYG page and template builder
  • Multimedia manager with automatic image optimization
  • Analytics module which is optional, server-side, and privacy respecting
  • Blogging system with an RSS feed generator
  • Multi-account dashboard with role management

Screenshots

Install

See INSTALL.md

Development and technical details

To start the Phoenix server:

  • Install dependencies with mix deps.get
  • Install JS dependencies yarn --cwd ./assets
  • Create and migrate your database with mix ecto.setup
  • Create the directories required for the CMS mix dirs.create
  • Start Phoenix endpoint with mix phx.server or inside IEx with iex -S mix phx.server

Now you can visit localhost:4000 from your browser.

Learn more

Notes

If changes has been made to the migration, this command should be run to reset the test database too:

mix ecto.reset && MIX_ENV=test mix ecto.drop

Translations

To extract translated strings from code to .pot template files:

mix gettext.extract --merge

To merge the extracted strings into locale specific .po file:

mix gettext.merge priv/gettext --locale fr

Prettier + eslint

cd assets
npx prettier . --write

Project external dependencies

  • NodeJS (compile time and runtime)
  • Rust (needed at compile time to build the xxh3 NIF binding)
  • (削除) libvips (削除ここまで) (used by Vix at runtime, but by default it is not required since Vix will download a precompiled binary at compile time. Leaving it in the list to keep in mind it's still an external dependency)