cpomf

Version, currently master branch1 version
  • master branchlatestMar 27, 2017

github.com/clickbait/cpomf

Pomf API compatible file host written in Crystal - The software behind nya.is.

35 stars
0 dependents
License: MIT

Installation

# Add this to your shard.yml
dependencies:
  cpomf:
    github: clickbait/cpomf
    branch: master

master is a branch, not a release, so this tracks it rather than pinning a version.

Then run:

shards install

shard.yml

Crystal
no constraint declared
Author
neko <neko@pomf.is>

Dependencies

Runtime Dependencies

  • pg~> 0.11.0github: will/crystal-pg
  • jwt~> 0.2.1github: greyblake/crystal-jwt
  • pool~> 0.2.3github: ysbaddaden/pool
  • redis~> 1.6.7github: stefanwille/crystal-redis
  • slang*github: jeromegn/slang, branch: master
  • crouter*github: jreinert/crouter, branch: master
  • multipart~> 0.1.1github: RX14/multipart.cr
  • CrystalEmail*github: Nephos/CrystalEmail, branch: master

Development Dependencies

  • spec2*github: waterlink/spec2.cr, branch: masterdev

README

# cpomf

pomf backend written in crystal for pomf.is

## Installation

### Prerequisites
- Postgres
- Mschematool
- Crystal 0.20.4

### Setup
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`

## Usage

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.

## Contributing

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

## Contributors

- [neko](https://github.com/neko) neko - creator, maintainer
- [RX14](https://github.com/RX14) RX14 - contributor