###Journalduhacker Project
This is the source code of the website operating at https://www.journalduhacker.net. It is a Rails 4 codebase and uses a SQL (MariaDB in production) backend for the database and Sphinx for the search engine.
The new code is Carl Chenet © 2016-2017 (starting Nov 8 2016) licensed under the AGPLv3 license. See the license/LICENSE.journalduhacker for the full license.
This code is forked from the lobste.rs engine, authored by Joshua Stein © 2012-2016 (until Nov 3 2016) licensed under the 3-BSD license. The current code is available here. See the license/LICENSE.lobsters for the original license and copyright.
####Contributing bugfixes and new features
Please see the CONTRIBUTING file.
####Initial setup
-
Install Ruby. This code has been tested with Ruby versions 1.9.3, 2.0.0, 2.1.0, and 2.3.0.
-
Checkout the journalduhacker git tree from Github
$ git clone https://gitlab.com/journalduhacker/journalduhacker.git $ cd journalduhacker journalduhacker$
-
Run Bundler to install/bundle gems needed by the project:
journalduhacker$ bundle
-
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
config/database.yml
file:development: adapter: mysql2 encoding: utf8mb4 reconnect: false database: journalduhacker_dev socket: /tmp/mysql.sock username: *username* password: *password* test: adapter: sqlite3 database: db/test.sqlite3 pool: 5 timeout: 5000
-
Load the schema into the new database:
journalduhacker$ rake db:schema:load
-
Create a
config/initializers/secret_token.rb
file, using a randomly generated key from the output ofrake secret
:Lobsters::Application.config.secret_key_base = 'your random secret here'
-
(Optional, only needed for the search engine) Install Sphinx. Build Sphinx config and start server:
journalduhacker$ rake ts:rebuild
-
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
-
Put your site's custom CSS in
app/assets/stylesheets/local
. -
Seed the database to create an initial administrator user and at least one tag:
journalduhacker$ rake db:seed created user: test, password: test created tag: test
-
Run the Rails server in development mode. You should be able to login to
http://localhost:3000
with your newtest
user:journalduhacker$ rails server
-
In production, set up crontab or another scheduler to run regular jobs:
*/20 * * * * cd /path/to/journalduhacker && env RAILS_ENV=production bundle exec rake ts:index > /dev/null