HEAD Latest release released
36 4 4

Archived shard

This shard has been archived . It is no longer maintained or has been discontinued for other reasons.


pomf backend written in crystal for pomf.is



  • Postgres
  • Mschematool
  • Crystal 0.20.4


Set your environment variables:

  • POMF_PORT - The port that cpomf listens to.
  • POMF_DEBUG - Whether or not cpomf is in debug mode true|false
  • POMF_DATABASE_URL - The postgres URL for your database, eg; postgres://localhost/pomf_database
  • POMF_SECRET_KEY - Your secret key; preferably something that's long and randomly generated.
  • POMF_ADMINS - A comma seperated list of admin usernames; keeping in mind that usernames are lowercase and alphanumeric only.
  • POMF_BLACKLISTED_NAMES - A comma seperated list of banned usernames; it's usually good to blacklist names like admin or anything else you don't want users to use.
  • POMF_UPLOAD_DIR - Relative path to your pomf upload directory.
  • POMF_URL - the root URL of your site; eg. https://pomf.is/
  • POMF_UPLOAD_URL - The upload URL for your site; eg. https://u.pomf.is/

Run shards install to install dependencies.

Run mschematool default init_db and then mschematool default sync

Compile the project with crystal build --release pomf.cr


Run cpomf like you would run any other binary file ./pomf

Use a nginx reverse proxy to cpomf; and use nginx to handle static files, including those in /src/pomf/public; google tutorials if you need to.

Please make sure that you modify the default templates and styles before you host your own clone; I've left nya.is' designs in as a reference, but being unique is king in a sea of clones.

Make sure you create your account before you release your site.


  1. Fork it ( https://github.com/neko/cpomf/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request


  • neko neko - creator, maintainer
  • RX14 RX14 - contributor
  github: nya/cpomf
Crystal none


Dependencies 7

  • crouter master
    {'branch' => 'master', 'github' => 'jreinert/crouter'}
  • CrystalEmail~Nephos master
    {'branch' => 'master', 'github' => 'Nephos/CrystalEmail'}
  • multipart ~> 0.1.1
    {'github' => 'RX14/multipart.cr', 'version' => '~> 0.1.1'}
  • pg ~> 0.11.0
    {'github' => 'will/crystal-pg', 'version' => '~> 0.11.0'}
  • pool ~> 0.2.3
    {'github' => 'ysbaddaden/pool', 'version' => '~> 0.2.3'}
  • redis ~> 1.6.7
    {'github' => 'stefanwille/crystal-redis', 'version' => '~> 1.6.7'}
  • slang master
    {'branch' => 'master', 'github' => 'jeromegn/slang'}

Development Dependencies 1

  • spec2 master
    {'branch' => 'master', 'github' => 'waterlink/spec2.cr'}

Dependents 0

Last synced .
search fire star recently