Retrospring/README.md

137 lines
3.6 KiB
Markdown

# justask (aka. the software behind Retrospring)
This is the source code that powered Retrospring. Yep, all of it. Including
all the branches where we left off.
<!--
Except for the memes that happened 4 hours before the shutdown. I've edited
it right on the server, without a special branch or something. If you want
to, I can make a branch with all the modifications we made.
-->
## Requirements
- UNIX-like system (Linux, FreeBSD, ...)
- Ruby 2.0.0+
- Bundler
- PostgreSQL
- Redis (for Sidekiq)
- ImageMagick (for image processing)
## Installation (production)
We've installed justask on FreeBSD 10 using rvm. What we also did was
creating a new, seperate user just for justask to run in. On FreeBSD, this
is done with:
# pw user add justask
### Database
At Retrospring, we were using PostgreSQL as the database backend. The
software might work on MySQL too, but that was not tested.
Installation from Ports (using `portmaster`):
# portmaster databases/postgresql93-server
#### PostgreSQL
$ sudo -u postgres psql -d template1
template1=# CREATE USER justask CREATEDB;
template1=# CREATE DATABASE justask_production OWNER justask;
template1=# \q
Try connecting to the database:
$ psql -U justask -d justask_production
### nginx
See [docs/nginx.conf](https://github.com/nilsding/justask/blob/master/docs/nginx.conf)
for the configuration we used on Retrospring.
### justask
#### Clone the Source
$ git clone https://github.com/nilsding/justask.git justask
#### Configure It
# Change into the justask directory
$ cd justask
# Copy the example config
$ cp config/justask.yml.example config/justask.yml
# Edit the configuration file
$ vi config/justask.yml
#### Database Configuration
$ cp config/database.yml.postgres config/database.yml
$ vi config/database.yml
# Make database.yml readable only for you
chmod o-rwx config/database.yml
#### Install Gems
# Deployment:
$ bundle install --deployment --without development test mysql
# Development:
$ bundle install --without production mysql
#### Initialize Database
$ bundle exec rake db:migrate RAILS_ENV=production
#### Compile Assets
$ bundle exec rake assets:precompile RAILS_ENV=production
#### Run the server
# Production mode:
$ foreman start
# Development mode:
$ bundle exec rails server
Now, create an account on your justask installation.
To make yourself an admin, just execute:
$ bundle exec rake 'justask:admin[your_username]' RAILS_ENV=production
If you want to remove admin status from a certain user, you can do this:
$ bundle exec rake 'justask:deadmin[get_rekt]' RAILS_ENV=production
Add/remove moderators (this can be done via the web interface by visiting an user as an admin):
$ bundle exec rake 'justask:mod[someone_else]' RAILS_ENV=production
$ bundle exec rake 'justask:demod[someone_else]' RAILS_ENV=production
Add/remove supporters (this can be done via the web interface by visiting an user as an admin/mod):
$ bundle exec rake 'justask:sup[someone_else]' RAILS_ENV=production
$ bundle exec rake 'justask:desup[someone_else]' RAILS_ENV=production
Export user data:
$ bundle exec rake 'justask:export[jdoe@example.tld]' RAILS_ENV=production
Find the user(s) with the most self-asked anonymous questions:
$ bundle exec rake justask:loners
## The Official Retrospring Closedown Soundtrack™
* [Scooter - Can't Stop The Hardcore](https://www.youtube.com/watch?v=nJ3bet-Y79w)
* [Darude - Sandstorm](https://www.youtube.com/watch?v=y6120QOlsfU)
* [Max Raabe - Oops I Did It Again](https://www.youtube.com/watch?v=qYr9kIyambE)