Giter Club home page Giter Club logo

blot's Introduction

Blot

A blogging platform with no interface. Blot turns a folder into a blog. The point of all this — the reason Blot exists — is so you can use your favorite tools to create whatever you publish.

Please don’t hesitate to contact me with any questions: [email protected]

Overview

The internet <> NGINX (reverse proxy) <> Blot (express.js node application) <> Redis

Development setup

First, clone this repository:

git clone https://github.com/davidmerfield/blot

Then install node version 16.

Blot requires a number of different hosts to work (one for the dashboard, one for the CDN and many for your sites). In order to get this working in a local development environment, I recommend using dnsmasq to resolve everthing under the non-existent .blot TLD to the local machine:

brew install dnsmasq

Create config directory for dnsmasq

mkdir -pv $(brew --prefix)/etc/

Setup *.blot in dnsmasq:

echo 'address=/.blot/127.0.0.1' >> $(brew --prefix)/etc/dnsmasq.conf

Autostart dnsmasq - now and after reboot:

sudo brew services start dnsmasq

Create resolver directory for macOS:

sudo mkdir -v /etc/resolver

Add your nameserver to resolvers:

sudo bash -c 'echo "nameserver 127.0.0.1" > /etc/resolver/blot'

Now, Blot also requires a wildcard SSL certificate so all the template preview subdomains work. First install:

brew install mkcert
brew install nss
mkcert -install

Then create the certificates:

mkdir -p ./data
mkcert -cert-file ./data/blot.pem -key-file ./data/blot-key.pem local.blot "*.local.blot"

Finally, you are ready to start the development environment which uses docker-compose. The first time you run this command it will take a while to download the images and build the containers but subsequent runs will be much faster:

npm run dev

The dashboard will be available at https://blot and the example site will be available at https://example.blot. You can edit the folder for the example blog inside the data directory:

./data/blogs/blog_$ID

Inside this folder

/
├── app/
│	the code for the node.js application which is Blot
├── config/
│	configation for the system utilities which keep redis, NGINX and the node.js processes up
├── scripts/
│	scripts which help the server administrator
├── tests/
│	integration tests and test configuration for blot
├── todo.txt
│	Blot's to-do list

blot's People

Contributors

davidmerfield avatar dependabot[bot] avatar freetonik avatar github-actions[bot] avatar pinjasaur avatar worm-emoji avatar stefan-yas avatar aurnik avatar nicktoumpelis avatar nicolasmtjt avatar aupiff avatar datashaman avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.