Find a file
2015-10-24 22:17:45 -07:00
.git-crypt T350: Added encrypted production and stage configs, updated the cache driver, and moved the .env.example file to the resources directory. 2015-09-12 15:35:40 -07:00
app Licensed Pony.fm under the GNU Affero General Public License (AGPL). 2015-10-24 22:17:45 -07:00
bootstrap Licensed Pony.fm under the GNU Affero General Public License (AGPL). 2015-10-24 22:17:45 -07:00
config Converted a bunch of tabs to spaces. 2015-10-24 19:35:37 -07:00
database Licensed Pony.fm under the GNU Affero General Public License (AGPL). 2015-10-24 22:17:45 -07:00
public Licensed Pony.fm under the GNU Affero General Public License (AGPL). 2015-10-24 22:17:45 -07:00
resources Licensed Pony.fm under the GNU Affero General Public License (AGPL). 2015-10-24 22:17:45 -07:00
storage Initial L5.1 commit 2015-08-30 12:26:03 +01:00
tests Initial L5.1 commit 2015-08-30 12:26:03 +01:00
tools Moved nginx's and MySQL's logs into the "storage" directory. 2015-09-12 16:49:16 -07:00
vagrant Converted a bunch of tabs to spaces. 2015-10-24 19:35:37 -07:00
.arcconfig Merge rPF91611faead64: Merge the MLP Music Archive import scripts. 2015-09-10 12:15:19 +01:00
.editorconfig Added an .editorconfig file. 2015-10-24 19:44:14 -07:00
.gitattributes T350: Added encrypted production and stage configs, updated the cache driver, and moved the .env.example file to the resources directory. 2015-09-12 15:35:40 -07:00
.gitignore T350: Ignore the nginx logs directory. 2015-09-12 14:58:17 -07:00
artisan Initial L5.1 commit 2015-08-30 12:26:03 +01:00
composer.json Licensed Pony.fm under the GNU Affero General Public License (AGPL). 2015-10-24 22:17:45 -07:00
composer.lock Added Poniverse API setup command. Closes T378. 2015-09-24 10:43:12 -07:00
gulpfile.js Licensed Pony.fm under the GNU Affero General Public License (AGPL). 2015-10-24 22:17:45 -07:00
LICENSE Licensed Pony.fm under the GNU Affero General Public License (AGPL). 2015-10-24 22:17:45 -07:00
package.json Licensed Pony.fm under the GNU Affero General Public License (AGPL). 2015-10-24 22:17:45 -07:00
phpspec.yml Updated Pony.fm's PHP namespace to Poniverse\Ponyfm. 2015-10-23 18:22:14 -07:00
phpunit.xml Initial L5.1 commit 2015-08-30 12:26:03 +01:00
README.md Licensed Pony.fm under the GNU Affero General Public License (AGPL). 2015-10-24 22:17:45 -07:00
server.php Initial L5.1 commit 2015-08-30 12:26:03 +01:00
Vagrantfile Updated the dev environment's hostname to ponyfm-dev.poni. 2015-09-19 20:17:27 -07:00

Pony.fm

The community for pony fan music.

For artists, Pony.fm features unlimited uploads and downloads, automatic transcoding to a number of audio formats, and synchronized tags in all downloads.

For listeners, Pony.fm offers unlimited streaming and downloading, user-generated playlists, favourite lists, and a way of discovering new music with pony-based taxonomies.

Contributing

If you've run across a bug or have a feature request, open a GitHub issue for it.

For quick fixes, go ahead and submit a pull request!

For larger features, it's best to open a ticket before sinking a ton of work into building them, to coordinate with Pony.fm's maintainers.

Starting a dev environment

To begin development, you must do three things:

  1. Install the vagrant-hostmanager plugin: vagrant plugin install vagrant-hostmanager

  2. Install the vagrant-bindfs plugin: vagrant plugin install vagrant-bindfs

  3. Create the directory pony.fm.files in the repository's parent directory

  4. Run vagrant up from the folder in which you cloned the repository

  5. Run vagrant ssh, cd /vagrant, and php artisan poni:setup.

  6. Follow the instructions in the "Asset pipeline" section below to set that up.

Once everything is up and running, you'll be able to access the site at http://ponyfm-dev.poni/. You can access the MySQL database by logging into 192.168.33.11:3306 with the username homestead and the password secret. Pony.fm's database is named homestead.

Asset pipeline

Pony.fm uses gulp to mange its asset pipeline.

Important: Run npm and gulp from your host machine and not within the VM. You must first have it installed globally:

npm install -g gulp

And then install all of the required local packages by invoking:

npm install

Finally, build all of the scripts by executing:

gulp build

During development, you should make a point to run "gulp watch". You can do this simply by executing:

gulp watch

This will watch and compile the .less and .coffee files in real time.

Configuring the servers

Pony.fm uses nginx, php-fpm, redis, and MySQL. You can modify the configuration of these services by locating the appropriate config file in the vagrant folder. Once modified, you must reload the configuration by running the appropriate shell script (reload-config.sh) or bat files (reload-config.bat and reload-config.vmware.bat). These scripts simply tell Vagrant to run copy-and-restart-config.sh on the VM.

If you need to change any other configuration file on the VM - copy the entire file over into the vagrant folder, make your changes, and update the copy-and-restart-config.sh script to copy the modified config back into the proper folder. All potential configuration requirements should be represented in the vagrant folder and never only on the VM itself as changes will not be preserved.

NOTE: currently, Redis's configuration is not reloaded by the copy-and-restart-config.sh