GithubHelp home page GithubHelp logo

chan's Introduction

MIT License


Logo

Chan

Imageboard API built on top of Laravel Lumen.
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Docker
  6. Heroku
  7. Contributing
  8. License
  9. Contact
  10. Acknowledgments

About The Project

(back to top)

Built With

(back to top)

Getting Started

To get a local copy up and running follow these simple steps.

Prerequisites

Follow Lumen Guide and install whatever appropriate for your system.

Installation

  1. Clone the repo
    git clone https://github.com/ravensiris/chan.git
  2. Setup your environment Follow guide HERE.
  3. Setup your database Follow guide HERE

Remember to create a database with the same name as in DB_DATABASE variable in your .env file.

Example in postgres:

createdb chan

Where chan is value of your DB_DATABASE.

You can also connect to the database using:

psql -d chan

Might be useful if you need to tweak stuff like encoding or limits.

  1. Run migrations
php artisan migrate:fresh

(back to top)

Usage

Run

php -S localhost:8000 -t public

Run tests

You need to have phpunit installed on your system. Follow guide HERE if you don't have it already.

phpunit

(back to top)

Docker

You can also run the project using docker-compose.

Issue commands manually

# Run seeds and migrations
docker-compose --env-file docker.env run backend php artisan migrate:fresh --seed
# Run in background
docker-compose --env-file docker.env up -d

You should now be able to enter /boards

Configure

You can set the environmental variables inside the docker.env file or inside docker-compose.yml

(back to top)

Deploying to Heroku

  1. Create a new app
  2. Push the container
heroku container:push --recursive -a NAME_OF_YOUR_APP
  1. Release the container
heroku container:release web -a NAME_OF_YOUR_APP
  1. Setup your database

Go into your app's dashboard then Configure Add-ons, add Heroku Postgres.

  1. Setup environmental variables

Go into Settings, press on Reveal Config Vars and then set:

APP_DEBUG=0
APP_ENV=production
APP_NAME=Chan
APP_TIMEZONE=UTC
APP_URL=YOUR_URL_HERE
CACHE_DRIVER=database # doesn't work yet, setting up redis in plans
LOG_CHANNEL=stderr # doesn't work yet
QUEUE_CONNECTION=sync

DATABASE_URL should be set automatically by Heroku. It'll be used to connect to the database. Don't modify it!

  1. Ensure your web dyno is up In Overview make sure web dyno has status ON.
  2. Run migrations and seed the database
heroku run --type=web -a YOUR_APP_HERE php artisan migrate:fresh --seed

(back to top)

Roadmap

  • Boards
    • List
    • View
  • Threads
    • List
    • View
    • Create
  • Replies
    • Create
    • List
    • View
  • Attachments
    • Attach image to reply
  • Limits
    • Limit maximum threads
    • Limit maximum frequency for creating new threads
    • Limit replies per thread
    • Limit maximum replies
    • Limit max image size

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the GPLv3 License. See LICENSE for more information.

(back to top)

Contact

Project Link: https://github.com/ravensiris/chan

(back to top)

Acknowledgments

(back to top)

chan's People

Contributors

ravensiris avatar

Stargazers

 avatar Paul avatar

Watchers

 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.