~mieum/smol.space

A Korean fork of smol.pub
add banner to manual, makefile, and scripts
update banner on readme
implement banner as template item

refs

main
browse  log 

clone

read-only
https://git.sr.ht/~mieum/smol.space
read/write
git@git.sr.ht:~mieum/smol.space

You can also use your local clone with git send-email.

  ___  스몰 인터넷 글쓰기 아지트
 (o,o)  ░█▀▀░█▄█░█▀█░█░░░░░░█▀▀░█▀█░█▀█░█▀▀░█▀▀
 {'"'}  ░▀▀█░█░█░█░█░█░░░░░░▀▀█░█▀▀░█▀█░█░░░█▀▀
 -"-"-  ░▀▀▀░▀░▀░▀▀▀░▀▀▀░▀░░▀▀▀░▀░░░▀░▀░▀▀▀░▀▀▀

#smol.space

smol.space is a fork of m15o's smolpub server, a low-tech journal service published on the web, gemini, and gopher. This fork translates the UI into Korean and makes a few minor adjustments and improvements to the server source code and configuration.

#Deploying/Developing

Anyone wanting to deploy their own instance of smolpub will likely want to start fresh with the upstream codebase: https://git.sr.ht/~m15o/smol.pub. If for some reason you are interested in this Korean fork specifically or wish to contribute to its development, you can follow the following steps to setup your environment.

Note: smol.space runs on a FreeBSD system, so the following configuration (and the installation/maintanence scripts included in this repo) will need to be adapted to your specific needs.

#Requirements

  • a local copy of this repository

  • a Go development environment

  • Postgresql 11+

  • For deployment: wildcard SSL certs, a domain, etc.

#Building

Adjust the GO_BUILD_ENV in the Makefile to suit your needs, then run make build. Simple!

#Installing

Again, adjust the Makefile to accommodate your needs, then run make install, and make install to reinstall/update after rebuilding smolpub each time. Installation will copy three files onto your system:

  • A copy of the smolpub binary

  • smolpub_keygen.sh: a simple script for generating registrations keys for prospective users. This script writes the generated keys to /usr/local/etc/smolpub/keys by default---adjust it if necessary.

  • rc.d/smolpub: a FreeBSD init script for starting/managing the smolpub daemon. This script expects to find a file defining the necessary environment variables at /usr/local/etc/smolpub/smolpub.conf. This file can be located anywhere, but its location must be specified here for the smolpub service to startup.

#Server Environment

The smolpub server requires the following environment variables to be set. The FreeBSD startup script expects these to be defined in /usr/local/etc/smolpub/smolpub.conf.

  1. ENV="PROD"
  2. DATABASE_URL: URL through which postgresql DB is accessed
  3. HOST: Hostname of the server
  4. CERT_FILE: SSL certificate, such as fullchain.pem issued by Let's Encrypt.
  5. CERT_KEY_FILE: SSL private key, such as privkey.pem issued by Let's Encrypt.
  6. KEYS_FILE: File containing valid registration tokens, one per line.
  7. WEB_CERT_FOLDER: folder to house web certs (for custom user domains)
  8. GMI_CERT_FOLDER: folder to house gemini certificates (which smolpub automatically generates).
  9. USER_DIR: location of user data directories (for storing uploaded media).

#Database Configuration

To run the smolpub server, you will need to have a Postgresql database and user setup, which can easily be achieved by doing something along the lines of:

$ su - postgres 
$ createuser -P smolpub
$ createdb -O smolpub smolpub

If you need to migrate a smolpub databse, first stop the server then dump the db by running pg_dump -a > db_dump. This dumps all the databse data but not the schema. Then before importing the dump into another instance, make sure a fresh database is created using the above commands, then initialize it by starting the smolpub server. Then importing the database is a s simple as psql smolpub < db_dump.

#LICENSE

This software is licensed under a BSD 3-Clause License.