Giter VIP home page Giter VIP logo

blizanci's Introduction

blizanci

Blizanci is a Gemini protocol server. It is designed primarily for robustness and security.

Features:

  • TLS client certificate support
  • single-user CGI
  • distributed PKI: authorisation by subject or issuer of certificates
  • Titan protocol uploads
  • servlet interface for in-process dynamic page generation

Prerequisites

You'll need Erlang and Rebar. On a Debian-derived system like Ubuntu, this means installing the rebar3 executable from the rebar3 website, and installing the deb package erlang:

Config

Currently, a config file is required. In due course, this will become optional.

Create an appropriate sys.config and vm.args file in the config/ directory in the format suggested in the examples in that directory.

You'll also need to put TLS certificates in ssl/certificate.pem and ssl/key.pem; these locations can be reconfigured, but blizanci will fail on startup with a badmatch / couldnt_open_pem_file message if the certificates cannot be read.

Build

$ rebar3 release

Run

$ ./manage.sh start-daemon

Trivia

"blizanci" / "близанци" is Serbo-Croatian for "twins" (i.e., Gemini).

Documentation

A work in progress at https://mk270.github.io/blizanci/.

Status

The source code of Blizanci is largely "finished". There are no plans to add new features.

But software is more than just programs. There is already some documentation of blizanci's internal APIs - eventually a manual will be produced and some installation advice and packaging / tooling.

blizanci's People

Contributors

apt1002 avatar mk270 avatar warpengineer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

blizanci's Issues

implement authorisation by certificate issuer

there should be a security domain accessible by any client presenting a certificate signed by a particular issuer (where this issuer's fingerprint or similar would be baked into the server configuration)

Error when compiling

Hi, I just now (17 Jan 2021) pulled the latest version and tried to build it with rebar3 release. It fails on the last step as follows:

===> Compiling apps/blizanci/src/blizanci_gemini.erl failed
apps/blizanci/src/blizanci_gemini.erl:51: undefined callback function start_link/3 (behaviour 'ranch_protocol')

I have Erlang/OTP 21 [erts-10.2.4] [source] [smp:4:4] [ds:4:4:10] [async-threads:1]

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.