Skip to content
My personal CMS for fantastic developer personal websites
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app
bin
config
db
lib
log
public
spec
tmp
vendor
.babelrc
.drone.yml
.gitignore
.postcssrc.yml
.rspec
.rubocop.yml
.ruby-version
Dockerfile
Dockerfile.init-db
Gemfile
Gemfile.lock
LICENSE
README.md
Rakefile
captain-definition
config.ru
docker-compose.yml
docker-entrypoint.sh
package.json
yarn.lock

README.md

DevCMS

DevCMS is my personal Content Management System. It powers my website at https://matteojoliveau.com and was built around my needs.

It features three base concepts: Projects, Jobs and Pages.

Projects

Projects are basically portfolio entries. In my case they are open source projects I started or contributed to, or work projects I worked on.

Jobs

Jobs are resume entries. They are positions at companies I worked at. They are aligned in a timeline for better presentation.

Pages

Static pages like /about and /contacts can be created at runtime. They have a name, a path and a template, which is defined using Liquid language. By default templates have access to all Bulma CSS classes and four special objects:

  • projects, a list of all published projects
  • jobs, a list of all published jobs
  • copies, a hash of all the Copy objects, where the copy name is the key and the content is the value (e.g. {{ copies['About'] }} #=> <p>Lorem Ipsum</p>). This allows to write copies with the handy editor and have them embedded in custom pages
  • configs, a hash of all the Config objects, mapped as key-value pairs (e.g. {{ configs['footer.copyright-year'] }} #=> 2018)

Pages that are marked as navbar: true are automatically added to the navbar in the order defined by navbar_order, with 1 being the last.

Dynamic configuration

Some elements are configured via Config objects. They are key-value pairs used for things like author name and copyright year. Necessary ones will be created during seeding, but more can be added at will.

Technical Requirements

  • Ruby 2.5

  • Rails 5.2

  • PostgreSQL 10.4

  • Bundler 1.16

  • NPM or Yarn for frontend dependencies

Classic Rails setup.

  1. If using Docker, start Postgres with docker-compose up -d. Also install dependencies by running bundle install and yarn install.
  2. Create and seed DB with rails db:setup (if not using Docker) or rails db:migrate db:seed (if using Docker)
  3. Run server with rails server

Website will be served over at https://localhost:3000.
Admin panel is at https://localhost:3000/admin. Username and password are printed during DB seeding.

Tests

  • Run tests with rspec.
You can’t perform that action at this time.