The Nivose CMS
https://nivose.xyz
cms
ecological
ecology
elixir
image-optimization
minimalism
minimalistic
phoenix
phoenix-liveview
postgres
postgresql
static-site-cms
static-site-generator
static-website
web
website
- Elixir 72.4%
- JavaScript 15.5%
- HTML 7.4%
- SCSS 4%
- Dockerfile 0.5%
- Other 0.2%
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.serveror inside IEx withiex -S mix phx.server
Now you can visit localhost:4000 from your browser.
Learn more
- Official website: https://www.phoenixframework.org/
- Guides: https://hexdocs.pm/phoenix/overview.html
- Docs: https://hexdocs.pm/phoenix
- Forum: https://elixirforum.com/c/phoenix-forum
- Source: https://github.com/phoenixframework/phoenix
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)