Skip to content

ForNeVeR/fornever.me

master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.

fornever.me: Engineer, Programmer, Gentleman Status Aquana Docker Image

This is the fornever.me site source code. It uses ForneverMind — a simple homemade blog engine mainly written in F# programming language.

Dependencies

ForneverMind requires recent Node.js installation both for building and for running.

Configuration

Backend reads its settings from the standard appsettings.json file. The available settings are:

  • baseUrl: URL to listen when started

Build

Frontend

To compile frontend part, you'll need a recent (16.0+) Node.js installation. The bundled Yarn package manager will be automatically executed on build.

Talks

There's an additional talks archive included as a git submodule in this repository. To prepare tasks for build, use the Scripts/Prepare-Talks.ps1 script. Talks require external Yarn installation of v1.22.0 or higher.

Backend

To compile the backend, you'll need a .NET 5 SDK installation.

Here's a sample build script:

$ dotnet build
$ cd ForneverMind
$ dotnet run

Test

$ dotnet test

Publish

Prepare the production-ready distribution in the publish directory:

$ dotnet publish --configuration Release --output publish ./ForneverMind

This application uses Docker for deployment. To create a Docker image, use the following command:

$ docker build -t revenrof/fornever.me:$FORNEVER_ME_VERSION -t revenrof/fornever.me:latest .

(where $FORNEVER_ME_VERSION is the version for the image to use)

Then push the image to the Docker Hub:

$ docker login
$ docker push revenrof/fornever.me:$FORNEVER_ME_VERSION
$ docker push revenrof/fornever.me:latest

Deploy

To install the application from Docker, run the following command:

$ docker run -d --restart unless-stopped -p:$PORT:80 --name $NAME revenrof/fornever.me:$VERSION

Where

  • $PORT is the port you want to expose the application on
  • $NAME is the container name
  • $VERSION is the version you want to deploy, or latest for the latest available one

For example, a production server may use the following settings (note this command uses the Bash syntax; adapt for your shell if necessary):

PORT=5001
NAME=fornevermind
VERSION=latest
docker pull revenrof/fornever.me:$VERSION
docker rm -f $NAME
docker run -d --restart unless-stopped -p $PORT:80 --name $NAME revenrof/fornever.me:$VERSION

Other components

  1. EvilPlanner meant to be an integral part of the site, but it needs to be installed separately.
  2. fornever.me uses an easy-to-install Disqus comment system.

Documentation