Find a file
Laravel Shift c420d3955b Laravel 5.3 Update (#107)
* Shift core files

* Shift app folder structure

Laravel 5.3 no longer includes the `Events`, `Jobs`, `Listeners`, and
`Policies` folders by default. Instead, they are created when you make
them using `artisan`.

* Shift Middleware

* Shift Providers

* Shift configuration

* Shift Routes

Laravel 5.3 now stores Routes in a top-level `routes` folder and
separates them into API, console, and web files.

* Shift deprecations

The `Str::randomBytes` and `Str::equals` methods were deprecated in
Laravel 5.2 and removed in Laravel 5.3 in favor of the native
`random_bytes` and `hash_equals` PHP functions.

In addition, the Collection method `lists()` was replaced with
`pluck()`.

* Shift Laravel dependencies

* Shift cleanup

* Updated composer.json

* Updated providers to 5.3 style

* Removed events folder and extend correct exceptions handler

* Updated configuration

* Shift back our method names from ending in "pluck" to "list"

* Temporarily add back in old mcrypt encrypter
2016-09-30 00:56:25 +01:00
app Laravel 5.3 Update (#107) 2016-09-30 00:56:25 +01:00
bootstrap Licensed Pony.fm under the GNU Affero General Public License (AGPL). 2015-10-24 22:17:45 -07:00
config Laravel 5.3 Update (#107) 2016-09-30 00:56:25 +01:00
database Laravel 5.3 Update (#107) 2016-09-30 00:56:25 +01:00
documentation Feature/notifications (#87) 2016-05-27 20:12:40 +01:00
public Updated contact email 2016-09-21 01:32:47 +01:00
resources Laravel 5.2 Update (#106) 2016-09-29 23:26:31 +01:00
routes Laravel 5.3 Update (#107) 2016-09-30 00:56:25 +01:00
storage Laravel 5.2 Update (#106) 2016-09-29 23:26:31 +01:00
tests Laravel 5.2 Update (#106) 2016-09-29 23:26:31 +01:00
tools Moved nginx's and MySQL's logs into the "storage" directory. 2015-09-12 16:49:16 -07:00
vagrant Fixed Supervisor not being started at boot. 2016-08-15 09:49:53 -07:00
.arcconfig Merge rPF91611faead64: Merge the MLP Music Archive import scripts. 2015-09-10 12:15:19 +01:00
.editorconfig Improved track pagination to better handle tons of content, including a "jump to page" button. 2015-10-29 03:24:12 -07:00
.gitattributes Removed non-local configs from this repo. 2015-12-20 04:59:01 -08:00
.gitignore Laravel 5.2 Update (#106) 2016-09-29 23:26:31 +01:00
artisan Initial L5.1 commit 2015-08-30 12:26:03 +01:00
composer.json Laravel 5.3 Update (#107) 2016-09-30 00:56:25 +01:00
composer.lock Laravel 5.3 Update (#107) 2016-09-30 00:56:25 +01:00
gulpfile.js Fixed package.json to a functioning set of dependencies. 2016-06-17 22:23:02 -07:00
LICENSE Licensed Pony.fm under the GNU Affero General Public License (AGPL). 2015-10-24 22:17:45 -07:00
package.json Fixed paged tracks directive 2016-08-29 00:09:01 +01:00
phpspec.yml Updated Pony.fm's PHP namespace to Poniverse\Ponyfm. 2015-10-23 18:22:14 -07:00
phpunit.xml Added APP_KEY for the testing environment. 2015-12-31 19:04:16 -08:00
README.md Feature/notifications (#87) 2016-05-27 20:12:40 +01:00
server.php Initial L5.1 commit 2015-08-30 12:26:03 +01:00
Vagrantfile Web server accessable on port 8080. Why? Because service worker and mobile device debugging, that's why! 2016-06-08 17:34:27 +01:00
webpack.base.config.js Ignore moment.js locales 2016-06-05 16:36:55 +01:00
webpack.dev.config.js Revert "Merge branch 'feature-remote-dev' of https://github.com/Poniverse/Pony.fm" 2016-05-16 01:00:37 +01:00
webpack.production.config.js Updated the README. 2016-02-16 02:57:19 -08:00

Pony.fm Logo

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 an issue for it.

For general questions and discussions about the site, stop by at the Pony.fm forum.

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

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

Developer documentation is available in the documentation directory.

Protip: Looking for a place to jump in and start coding? Try a quickwin issue - these are smaller in scope and easier to tackle if you're unfamiliar with the codebase!

Starting a dev environment

To begin development, do the following:

  1. Install Vagrant and VirtualBox if you don't have them already.

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

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

  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 ponyfm-dev.poni: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, to compile and serve the assets in real time, run the following (and leave it running while you develop):

gulp watch

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.