Lovely Scala Blogging Engine provides a basic blog CMS, all written with love, Scala and coffein! My own deployed version can be found here.
- SBT (Scala Build Tool): download here.
- MongoDB: installation instructions here.
- Sass (Syntactically Awesome Style Sheets): installation instructions here.
- UglifyJs: installation instructions here.
The server is configured with environment variables:
APP_CONTEXT: context of the application (
DEV, default is
SERVER_HOST: the host on which to bind. Default used is
localhostwhich makes it unreachable from the outside
PUBLIC_PORT: the port for the public api (default
ADMIN_PORT: the port for the admin api (default
REPOSITORY_LINK: link given in the
MONGO_HOST: host for the mongo database (default
MONGO_CUST_PORT: port of the mongo database (default
MONGO_NAME: name of the database (default
HASH_ITERATIONS: number of iterations when hashing the password (default
300000, should be high enough so that it takes around 1 second to perform a hash)
BLOG_OWNER_FIRST_NAME: first name of the owner of the blog (default
BLOG_OWNER_LAST_NAME: last name of the owner of the blog (default
BLOG_OWNER_PSEUDO: owner's usual pseudonym (default empty)
BLOG_OWNER_GENDER: owner's gender (default
male, remember that it was built for me initially and I am a male, no discrimination here)
BLOG_SHORT_DESCRIPTION: short description of the blog, for the RSS flux (default
My Personal Blog)
BLOG_META_DESCRIPTION: short description for the blog (default
My name is Jeremy Rabasco. I am a Computer Science major and I currently work at <JOB_HERE>.)
CONTACT_ADDRESS: email for the footer (default
GTAG_KEY: Google analytics tracking key, leave empty if you do not wish to use Google analytics.
HEADER_TITLE: title in the header (default
IMAGES_LOCATION: location where the uploaded images are saved (default
SITE_URL: the URL of the website (default
RESUME_REPO: link to your resume repository, see the Resume section
DISCLAIMER: A disclaimer that will appear in the footer (default
My opinions do not necessarily represent those of my employer.)
COPYRIGHT: copyright mention for the footer (defaults to nothing)
DEFAULT_POSTS_PER_PAGE: number of posts per page when no parameter is supplied (default
To add a user run:
$ sbt > run-main me.lsbengine.bin.UserManager add <username> <password>
To remove a user run:
$ sbt > run-main me.lsbengine.bin.UserManager remove <username>
The usernames are case insensitive. Remember that all the users are considered admin users.
To make your resume available, you must provide a link to your resume repository. This repository must contain a Makefile so that when running
make in the repository, it generates a file named
resume.pdf. It will be then downloadable from the following route:
$lastname are the provided names in lower case.
If no repository is provided, this just does not happen at all.
Clone the repository and run
$ make run
If you plan to run this on the production machine, make sure you set the
PUBLIC_DOMAINS environment variable to be your actual list of valid public domains/subdomains,
ADMIN_DOMAINS to be the location for your admin interface and
DOMAIN to be just your domain name then run:
$ make build-docker $ docker-compose up -d
Example of a valid domains setup script:
export PUBLIC_DOMAINS="public.lsbengine.me lsbengine.me blog.lsbengine.me www.lsbengine.me" export ADMIN_DOMAINS="admin.lsbengine.me" export DOMAIN="lsbengine.me"