The site behind software.opensuse.org. It is the default web interface to download openSUSE distribution and to search for OBS packages.Packages at https://build.opensuse.org/project/show/openSUSE:infrastructure:software.opensuse.org
Ruby HTML CSS JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app Fall back to en when locale is invalid Apr 19, 2018
bin update rails files Oct 20, 2017
config Enable classes caching Apr 19, 2018
doc start a readme for i18n Feb 11, 2010
lib Small bump to next rubocop that works Feb 2, 2018
locale Translated using Weblate (Spanish) Apr 18, 2018
public Removal of old 11.1 download site Feb 15, 2018
script Move the downloads calculation from delayed_job to a rake task May 9, 2014
test Tumbleweed: get appdata filename from repomd.xml (#232) Mar 29, 2018
.gitignore Add vendor to .gitignore Feb 2, 2018
.gitmodules Change git submodules url Jul 25, 2017
.rubocop.yml Not needed, and it overrides sane defaults Feb 2, 2018
.rubocop_todo.yml Regenerate rubocop todo file with newer version Feb 2, 2018
.travis.yml Enable running tests in travis Feb 3, 2018
CONTRIBUTING.md Contributing guide: Require screenshots for visual changes Feb 22, 2018
Capfile Small bump to next rubocop that works Feb 2, 2018
Dockerfile Get some Vagrant/Docker dev environment going Feb 24, 2017
Gemfile Small bump to next rubocop that works Feb 2, 2018
Gemfile.lock Update loofah to 2.2.2 using 'bundle update loofah' Apr 10, 2018
README.i18n Wrong url in README.i18n Jul 28, 2016
README.md Fixes #233 Improve "Readme" to make clear the differences between Le… Mar 28, 2018
Rakefile Small bump to next rubocop that works Feb 2, 2018
TODO improve display of subpackages in search result list Apr 20, 2012
Vagrantfile Small bump to next rubocop that works Feb 2, 2018
config.ru Enable Style/ExtraSpacing Rubocop cop Jun 8, 2017
manifest.yml manifest: increase disk quota Oct 20, 2017

README.md

software.opensuse.org

Build Status

Ruby on Rails application powering https://software.opensuse.org

We hope you'll get involved! Read our Contributors' Guide for details.

Installing dependencies in a (open)SUSE system

We recommend the usage of Ruby 2.4 or higher for the development.

If you are an openSUSE Tumbleweed user, it comes with the latest Ruby releases as default so you can configure your environment doing:

zypper ref
zypper in ruby ruby-devel rubygem-bundler nodejs gcc make libxml2-devel libxslt-devel

On openSUSE Leap 42.3 you will need to install the Ruby 2.4 environment doing:

zypper ref
zypper in ruby2.4 ruby2.4-devel ruby2.4-rubygem-bundler nodejs6 gcc make libxml2-devel libxslt-devel

You can find more information about Ruby development and packaging on openSUSE distributions here.

Running the application locally

Just for running it in development mode. If you are playing to deploy it in a server, please apply good Ruby on Rails practices (like generating your own keys for secrets.yml).

git clone https://github.com/openSUSE/software-o-o.git
cd software-o-o
git submodule init
git submodule update

bundle package
bundle exec rails s

Enjoy your software.opensuse.org clone at http://127.0.0.1:3000/

Running the application in production

The application will take the following environment variables:

  • SECRET_KEY_BASE: See Encrypted Session Storage in Rails documentation.
  • API_USERNAME and API_PASSWORD: Credentials to the Open Build Service API end-point
    • These can be replaced with OPENSUSE_COOKIE if you have admin access to the Open Build Service instance.
  • RAILS_ENV

Puma will honor other variables too:

  • WEB_CONCURRENCY
  • RAILS_MAX_THREADS
  • PORT
  • RACK_ENV

Memcache

memcache should be running. It seems to be hardcoded in environments/production.rb to localhost:11211. This probably needs to be fixed, as the dalli gem, automatically uses MEMCACHE_SERVERS env variable or 127.0.0.1:11211 as default.

PaaS

If you plan to run the application on PaaS, make sure you set all the above variables correctly.

Official instance

The official instance is deployed using an rpm package. The rpm package bundles all the required gems.

There is a software_opensuse_org.service you can control via systemd.

The systemd service will read the variables described above from /etc/software_opensuse_org.conf in the form of an EnvironmentFile:

VAR1=value1
VAR2=value2
...

Development environment using Vagrant

There is also a Vagrant setup to create our development environment. All the tools needed for this are available for Linux, MacOS and Windows.

  1. Install Vagrant and docker. Both tools support Linux, MacOS and Windows.

  2. Clone this code repository:

    git clone --recurse-submodules git@github.com:openSUSE/software-o-o.git
    
  3. Build your Vagrant box:

    vagrant up
    
  4. Attach to your new development box

    docker attach software_web
    
  5. Setup the database

    rake db:setup db:seed
    
  6. Start the app

    rails server
    
  7. Enjoy your software.opensuse.org clone at http://127.0.0.1:3000/

If you exit the shell inside the vagrant box your development environment is stopped. Want to continue? Run vagrant up and docker attach software_web again. Happy hacking!