LilyPond mini-score engraving and sharing service for musicians.
The live Tunefl service is at tunefl.com.
More sleep lost by tiredpixel.
The primary method of development installation is using Docker. You can also use this as a basis for production installation, but you'll probably want to change some things, if so.
You can also install manually, by installing the linked services and packages defined in
bundle install, and running services using the supplied
The default Ruby version supported is defined in
.ruby-version. Any other versions supported are defined in
Various versions will probably work. I'm currently using:
# docker --version Docker version 1.9.1, build a34a1d5 # docker-compose --version docker-compose version 1.5.2, build 7240ff3
--x-networking will no longer be preview in Docker Compose 1.6, so this flag might not be necessary for you.
Copy and configure your settings:
cp .env.example .env
docker-compose --x-networking up -d postgres
docker exec -it tunefl_postgres_1 psql -U postgres
Create the database:
CREATE ROLE tunefl_dev LOGIN PASSWORD 'password'; CREATE DATABASE tunefl_dev OWNER tunefl_dev;
docker-compose --x-networking up -d web
Migrate the database:
docker exec tunefl_web_1 bundle exec rake db:migrate
Stop all services:
Start all services:
docker-compose --x-networking up
web service in a browser:
xdg-open "http://$(docker-compose port web 8080)"
web service admin area in a browser:
xdg-open "http://$(docker-compose port web 8080)/admin"
Monitor the queue using Sidekiq Spy:
docker exec -it tunefl_worker_1 sh \ -c 'TERM=xterm bundle exec sidekiq-spy -h tunefl_redis_1.tunefl -n resque'
Create multiple stacks as required; the main one in installation is suitable for a
dev stack, and you can build on this. You'll probably also want to create a
test stack, following similar steps. One approach is to:
Add an alias to your shell; for Bash:
echo "alias docker-compose-stack='docker-compose -f docker-compose.\$STACK.yml -p \$STACK'" >> ~/.bashrc source ~/.bashrc
Copy and configure a different settings file (here I'm using
0 as a separator as Docker Compose currently strips
cp .env.example .tunefl0test.env
Copy the Docker Compose file, modifying to point to your
cp docker-compose.yml docker-compose.tunefl0test.yml
docker-compose commands using
docker-compose-stack. I prefer to be explicit and use a subshell, as a protection against forgetting which stack I'm using; e.g. to start all services:
(export STACK=tunefl0test; docker-compose-stack up)
To run all tests:
docker exec tunefl0test_web_1 bundle exec rspec
Tests are written using RSpec. There are not many tests, because the application is very simple. If generating a score from the home page works, then things are probably okay.
Contributions are welcome! Please fork the repository and prepare your patches in one or more branches, ensuring that any tests are not broken by the changes. Then, send me one or more pull requests. Proposed patches will then be reviewed prior to acceptance, usually into
master branch. If you'd like to discuss something, then please get in touch.
Do whatever makes you happy. We'll probably still like you. :)
May you find peace, and help others to do likewise.
Copyright © 2012-2016 tiredpixel. See