2017-02-25 15:03:11 +01:00
###Journalduhacker Project
2012-08-24 17:39:05 +02:00
2017-02-25 15:03:11 +01:00
This is the source code of the website operating at
[https://www.journalduhacker.net ](https://www.journalduhacker.net ). It is a Rails 4 codebase and uses a
2013-05-26 19:56:31 +02:00
SQL (MariaDB in production) backend for the database and Sphinx for the search
2012-09-18 17:13:25 +02:00
engine.
2012-08-24 17:39:05 +02:00
2017-02-28 08:24:33 +01:00
This code is forked from the [lobste.rs ](https://lobster.rs ) engine, authored by Joshua Stein previously licensed under the 3-BSD license. The code is [available here ](https://github.com/lobsters/ ).
2013-02-25 02:52:09 +01:00
####Contributing bugfixes and new features
2017-02-25 15:03:11 +01:00
Please see the [CONTRIBUTING ](https://gitlab.com/journalduhacker/journalduhacker/blob/master/CONTRIBUTING.md )
2013-02-25 02:52:09 +01:00
file.
2012-08-24 17:39:05 +02:00
####Initial setup
2016-04-12 21:48:21 +02:00
* Install Ruby. This code has been tested with Ruby versions 1.9.3, 2.0.0, 2.1.0,
and 2.3.0.
2012-08-24 17:39:05 +02:00
2017-02-25 15:03:11 +01:00
* Checkout the journalduhacker git tree from Github
2012-08-24 17:39:05 +02:00
2017-02-25 15:03:11 +01:00
$ git clone https://gitlab.com/journalduhacker/journalduhacker.git
$ cd journalduhacker
journalduhacker$
2012-08-24 17:39:05 +02:00
2012-09-18 17:13:25 +02:00
* Run Bundler to install/bundle gems needed by the project:
2012-08-24 17:39:05 +02:00
2017-02-25 15:03:11 +01:00
journalduhacker$ bundle
2012-08-24 17:39:05 +02:00
2013-05-26 19:56:31 +02:00
* Create a MySQL (other DBs supported by ActiveRecord may work, only MySQL and
MariaDB have been tested) database, username, and password and put them in a
2012-09-18 17:13:25 +02:00
`config/database.yml` file:
2012-08-24 17:39:05 +02:00
2012-08-24 18:52:21 +02:00
development:
adapter: mysql2
2013-05-26 19:39:52 +02:00
encoding: utf8mb4
2012-08-24 18:52:21 +02:00
reconnect: false
2017-02-25 15:03:11 +01:00
database: journalduhacker_dev
2012-08-24 18:52:21 +02:00
socket: /tmp/mysql.sock
username: *username*
password: *password*
test:
adapter: sqlite3
database: db/test.sqlite3
pool: 5
timeout: 5000
2012-08-24 17:39:05 +02:00
2012-09-18 17:13:25 +02:00
* Load the schema into the new database:
2012-08-24 17:39:05 +02:00
2017-02-25 15:03:11 +01:00
journalduhacker$ rake db:schema:load
2012-08-24 17:39:05 +02:00
2013-06-30 08:29:51 +02:00
* Create a `config/initializers/secret_token.rb` file, using a randomly
generated key from the output of `rake secret` :
2012-08-24 17:39:05 +02:00
2014-08-04 04:47:53 +02:00
Lobsters::Application.config.secret_key_base = 'your random secret here'
2012-08-24 17:39:05 +02:00
2013-06-30 08:29:51 +02:00
* (Optional, only needed for the search engine) Install Sphinx. Build Sphinx
config and start server:
2012-08-24 17:39:05 +02:00
2017-02-25 15:03:11 +01:00
journalduhacker$ rake ts:rebuild
2012-08-24 17:39:05 +02:00
2013-06-30 08:29:51 +02:00
* Define your site's name and default domain, which are used in various places,
in a `config/initializers/production.rb` or similar file:
class < < Rails.application
def domain
"example.com"
end
def name
"Example News"
end
end
Rails.application.routes.default_url_options[:host] = Rails.application.domain
2016-03-31 21:24:57 +02:00
* Put your site's custom CSS in `app/assets/stylesheets/local` .
2015-05-10 17:17:57 +02:00
* Seed the database to create an initial administrator user and at least one tag:
2012-08-24 17:39:05 +02:00
2017-02-25 15:03:11 +01:00
journalduhacker$ rake db:seed
2015-05-10 17:17:57 +02:00
created user: test, password: test
created tag: test
2012-09-02 16:34:39 +02:00
2012-09-18 17:13:25 +02:00
* Run the Rails server in development mode. You should be able to login to
2013-06-30 08:29:51 +02:00
`http://localhost:3000` with your new `test` user:
2012-09-02 16:34:39 +02:00
2017-02-25 15:03:11 +01:00
journalduhacker$ rails server
2016-04-24 03:20:55 +02:00
* In production, set up crontab or another scheduler to run regular jobs:
2017-02-25 15:03:11 +01:00
*/20 * * * * cd /path/to/journalduhacker && env RAILS_ENV=production bundle exec rake ts:index > /dev/null