Sign inSign up

mstrzele/lobsters

By mstrzele

•Updated over 8 years ago

Rails code running the Lobsters link aggregation site

Image
0

10K+

mstrzele/lobsters repository overview

⁠Lobsters Rails Project Build Status

This is the quite sad⁠ source code to the site operating at https://lobste.rs⁠. It is a Rails 5 codebase and uses a SQL (MariaDB in production) backend for the database.

While you are free to fork this code and modify it (according to the license⁠) to run your own link aggregation website, this source code repository and bug tracker are only for the site operating at lobste.rs⁠. Please do not use the bug tracker for support related to operating your own site unless you are contributing code that will also benefit lobste.rs⁠.

⁠Contributing bugfixes and new features

Please see the CONTRIBUTING⁠ file.

⁠Initial setup
  • Install Ruby 2.3.

  • Checkout the lobsters git tree from Github

    $ git clone git://github.com/lobsters/lobsters.git
    $ cd lobsters
    lobsters$
    
  • Install Nodejs, needed (or other execjs) for uglifier

    Fedora: sudo yum install nodejs
    Ubuntu: sudo apt-get install nodejs
    OSX: brew install nodejs
    
  • Run Bundler to install/bundle gems needed by the project:

    lobsters$ 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. You will also want a separate database for running tests:

    development:
      adapter: mysql2
      encoding: utf8mb4
      reconnect: false
      database: lobsters_dev
      socket: /tmp/mysql.sock
      username: *dev_username*
      password: *dev_password*
      
    test:
      adapter: mysql2
      encoding: utf8mb4
      reconnect: false
      database: lobsters_test
      socket: /tmp/mysql.sock
      username: *test_username*
      password: *test_password*
    
  • Load the schema into the new database:

    lobsters$ rake db:schema:load
    
  • Create a config/initializers/secret_token.rb file, using a randomly generated key from the output of rake secret:

    Lobsters::Application.config.secret_key_base = 'your random secret here'
    
  • 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, the inactive-user, and at least one tag:

    lobsters$ rake db:seed
    
  • Run the Rails server in development mode. You should be able to login to http://localhost:3000 with your new test user:

    lobsters$ rails server
    
  • In production, set up crontab or another scheduler to run regular jobs:

    */5 * * * *  cd /path/to/lobsters && env RAILS_ENV=production sh -c 'bundle exec ruby script/mail_new_activity; bundle exec ruby script/post_to_twitter'
    

Tag summary

Content type

Image

Digest

Size

343.8 MB

Last updated

over 8 years ago

docker pull mstrzele/lobsters