LinuxFr.org is a french web site speaking of Linux and Free Software.
This git repository is the rails application that run on LinuxFr.org.
The following instructions will help you to install the Rails part of LinuxFr.org on a Debian box.
-
First install some Debian packages:
Note: you can use libcurl4-gnutls-dev instead of libcurl4-openssl-dev.
-
Configure the database:
> CREATE DATABASE linuxfr_rails CHARACTER SET utf8; > GRANT ALL PRIVILEGES ON linuxfr_rails.* TO "linuxfr_rails"@"localhost"; > QUIT; (return to user)Statistics need time zone at SQL level. You'll need to population time_zone* tables.
-
Install Ruby with RVM (more details on https://rvm.io/rvm/install ):
$ \curl -sSL https://get.rvm.io | bash -s stable --ruby
And follow the instructions.
-
Clone the repository, configure and install gems:
$ git clone git://github.com/linuxfrorg/linuxfr.org.git $ cd linuxfr.org $ cp config/database.yml{.sample,} $ cp config/secrets.yml{.sample,} $ bundle install
-
Finish to configure:
$ desi install $ desi start $ bin/rake db:setup (if you're updating, you'll need an other step: redis-cli flushdb) $ bin/rake elasticsearch:import FORCE=y
-
Let's run it:
$ bin/rails server $ x-www-browser http://127.0.0.1:3000/
-
Create an admin account:
- Create an account
- Get confirmation link in the console and confirm the account
- Get password in the console
- Give admin role to this account with
mysql linuxfr_rails
mysql> UPDATE accounts SET role='admin' WHERE login='xxxxxx';
- Reload the page on the site, you should be admin.
The whole install process may seem a bit tedious especially if your environment is not already set for ruby development, and it may discourage contributions for small things like css or quick bugfix.
In such case and if you have a recent kernel (3.8+) you can give docker a try. The big plus is that you don't have to install ruby, mysql, or whatever, it all will be 'contained' in the docker image. The image is built upon a debian image but can be launched from any distro.
Step by step:
- install docker (see http://docs.docker.io/installation)
- pull the premade image
docker pull mose/linuxfr-dev
- or if you already know docker make your own with the
Dockerfile
present in the repodocker build -t linuxfr .
- remove
database.yml
if you already customised it, as it will use the default one - launch the container either manually
docker run -d -v /path/to/linuxfr-cloned-repo:/srv/linuxfr --name linuxfr mose/linuxfr-dev
- or use the small bash script
./docker-files/docker.sh
it will- create a user with same uid as you so the mounted repo will have no prem trouble
- copy your ssh public keys in the container root and user account
authorized_keys
- run a bundle install --path vendor so the bundled gems will be in vendor/ruby/ (note later on if you are on the same ARCH as the container (ie 64bits) you can bundle install from your local repo)
- propose you to refresh or not the db
- add in your /etc/hosts an entry for the container ip to resolve to linuxfr.dev
- you can access the launched app
x-www-browser http://172.17.0.2:3000
reach the app in your browsermysql -h 172.17.0.2 -ulinuxfr.dev linuxfr_rails
to access the dbssh root@172.17.0.2
and passworddocker
to reach it via ssh
- you will have to do the step 7 from the normal install for init the admin account.
Usage:
- your local git clone of linuxfr.org code is mounted in the container, so all you change in your local dir are taken in account immediatelyin the container
docker ps
should list the container if it's launcheddocker stop linuxfr
stops the containerdocker start linuxfr
restarts the container if it was stoppeddocker rm linuxfr
will erase a container so you can relaunch a fresh one from the imagedocker images
lists the docker images you can launch- the docker.sh script also puts a linuxfr.dev somain resolution to the container ip for ease of use
- you can launch a rails console with
ssh root@linuxfr.dev "cd /srv/linuxfr && bundle exec rails c"
Limitations:
- elasticsearch is not yet included in the docker image
- this dockerisation is still experimental and not very well tested but it proved to work at least once
- please report any bugs or suggest improvements by opening an issue.
If you want the full stack for running LinuxFr.org, you should also look at:
- The admin files
- The migration script
- The board daemon
- The share daemon
- The epub daemon
- The img daemon
- SVGTeX
-
Be sure that redis and ElasticSearch are running
-
And now, just run rspec (and repeat this step until done):
$ bin/rspec spec
CSS are written in sass and compiled with the Rails assets pipeline.
If you just want to compile a CSS without installing Rails and all its
dependency, you can install the sass
gem and launch:
bin/compile_sass app/assets/stylesheets/application.css.scss > app.css
The code is licensed as GNU AGPLv3. See the LICENSE file for the full license.
The default avatar is a modified Tux.
Iconic icons are licenced CC by-sa 3.0.
♡2011 by Bruno Michel. Copying is an act of love. Please copy and share.