Software Requirements
- Python (Already set up in /software)
- Ruby + Rubygems (Already set up in /software)
-
Sandstorm Requirements
- Swap to CLANG as the primary compiler
- Clang compiler version 3.4 or better
- Upgraded Kernel
- Linux x86_64, with kernel version 3.13 or later
- Swap to CLANG as the primary compiler
- Swap to Nginx?
Service Requirements
In decreasing order of priority:
- Wordpress
- GIT (and GitLab)
- ShareLatex
Webserver
Apache is probably good enough, but many web-apps seem to only support Nginx. Would it be possible to install both so that we can start with Apache and then possibly transition over to Nginx at some point in the future?
Postgres
- Data Directory: /data/pgdata
- Start/Stop: init.d
- Test:
psql
should return DATABASE MISSING or ACCESS DENIED
GitLab relies on Postgres, as do several less critical services.
MySql
- Data Directory: system default
- Start/Stop: init.d
- Test:
mysql
should return ACCESS DENIED
Wordpress (the lab website) relies on Mysql. It would be nice if the data directory got moved to /data so that it got backed up properly.
MongoDB
- Data Directory: /data/mongodb
- Start/Stop: init.d
- Test:
mongo
should connect you to 'test'
MongoDB will be getting phased out in favor of using Sandstorm-based services, but it would be nice to have it available as a backup or during the transition phase to ensure that services that rely on it can be safely moved over.
Redis
- Data Directory: n/a (redis is not a persistent data store)
- Start/Stop: init.d
- Test:
redis-cli
should open up a shell.
Redis will be getting phased out in favor of using Sandstorm-based services, but it would be nice to have it available as a backup or during the transition phase to ensure that services rely on it can be safely moved over.
Wordpress
- Data Directory: [MySql] and /var/www/html/
- Start/Stop: Automatically served by Apache
- Test: http://odin.cse.buffalo.edu/
- Depends On: Apache, Mysql
Wordpress is mission critical.
ShareLaTeX
- Data Directory: /data/sharelatex
- User: sharelatex
- Start/Stop: Manual management using ~sharelatex/start_all.sh (super finicky setup...)
- Test: http://latex.odin.cse.buffalo.edu/
- Depends On: MongoDB, Redis
ShareLatex is not mission critical, and will be moving over to Sandstorm. However, it would be useful to have a useable install of ShareLaTeX during the transition period.
GitLab
- Data Directory: /data/git
- User: git
- Start/Stop: init.d
- Test: http://odin.cse.buffalo.edu/gitlab
- Depends On: MongoDB, Redis
GitLab is mission critical. It will be moving over to Sandstorm, but it is essential that GitLab be available in the interim.
GIT
- Data Directory: /data/git
- User: git
- Start/Stop: [Runs over SSHD]
- Test:
git clone git@mjolnir.cse.buffalo.edu:odin-lab/documentation.git
should say "Warning, cloned an empty repository" - Depends On: GitLab
GIT runs over SSHD ~/.ssh/authorized_keys as an improvised ACL. This file is managed by GitLab, and uses a program called gitlab-shell
to actually implement access control.