A self-hostable server that provides a place for musicians to publish their work for their audience https://mountaintown.technology
Go to file
Sundog 41a30d1855 updates models and schema doc, adds final purchase related tables 2023-11-01 09:34:33 -04:00
src updates main.rs, applies default formatting from rustfmt 2023-10-19 13:12:21 -04:00
.gitignore adds Cargo.lock, updates gitignore, updates SCHEMA with initial table definitions for a couple of tables based on MODELS 2023-10-18 15:55:07 -04:00
ARCHITECTURE.md updates ARCHITECTURE, adds MODELS and SCHEMA docs 2023-10-17 17:27:09 -04:00
Cargo.lock adds Cargo.lock, updates gitignore, updates SCHEMA with initial table definitions for a couple of tables based on MODELS 2023-10-18 15:55:07 -04:00
Cargo.toml adds dotenv to cargo dependencies, adds env.example as example .env file 2023-10-18 14:36:15 -04:00
LICENSE Initial commit 2023-10-17 11:11:37 -04:00
MODELS.md updates models and schema doc, adds final purchase related tables 2023-11-01 09:34:33 -04:00
README.md adds private/public playlist support to long-term goals 2023-10-17 13:52:34 -04:00
SCHEMA.md updates models and schema doc, adds final purchase related tables 2023-11-01 09:34:33 -04:00
env.example adds a few more config parameters to env.example 2023-10-18 14:49:32 -04:00

README.md

Aural Isle

Overview

Aural Isle is a web application built to provide a simple, easy to manage way for musicians (and record labels) to publish their work for their audiences. It is a hub from which an artist can grow a community of support.

It is also suitable for use by music reviewers, playlist makers, and casual listeners who want to be able to access and share (selectively!) their music collection from anywhere.

Current Status

This project is just getting off the ground and is not yet ready for use.

Vision

Musicians need a way to get their work out into the world. They need to be able to get their work in front of their audiences, and they need to be able to get paid. Traditionally, the music industry has been controlled by gatekeepers - record label execs, distribution channels, promotion and marketing channels. We aim to provide a way to bypass those gatekeepers, to keep control of your work in your hands without forcing you to become a computer expert.

Fans of music, both professionally (music reviewers and critics, DJs, radio personalities, etc.) and casually (listeners, collectors, etc.), also need a way to share what they experience. Sharing what we like is one of the most powerful ways we can draw attention to artists we'd like to support, so we also aim to make this tool appropriate for those use cases.

Goals

Our overall goal is to provide a platform that musicians, record labels, curators, and fans can use to support themselves and others in the production of art. The world can always use more art.

We want to accomplish this through empowering the people that are creating the art and leaving control of their work in their hands rather than in the hands of rent-seeking corporate platforms.

We will use open source technologies and open standards.

Non-Goals

We are not interested in integrations with corporate silos; however, we are pragmatic and understand that musicians need to eat regardless of where their grocery budget comes from, so we will add integrations to publish to silos from your Aural Isle, but you will remain in ultimate control of where your content is available.

We are not interested in blockchain integrations or NFTs and will not be implementing any support for anything of the sort. We're not trying to bake the planet more or provide arbitrage opportunities.

Roadmap

We have a lot of plans for the future of this project, but we also want to get it up and running and into the hands of folks who will find it useful as quickly as we can. The following are the current goals of the project in the short term and in the longer term:

Short Term Tasks

  • Datastore
    • sqlite database support
  • Basic authentication/authorization
    • OAuth2 support
    • Role-Based Authorization Control (RBAC)
      • siteadmin role (superadmin, full control)
      • labeladmin role
      • artist role
      • reviewer role
      • fan role
      • guest role (public view)
  • Content management
    • Basic theming support
    • Album support:
      • Upload new album
        • Transcode to desired formats for release automatically
          • At time of upload (optionally, if processing is more constrained than storage - default)
          • on-the-fly at time of download (optionally, if storage is more constrained than processing)
      • Modify existing album/album tracks
        • modify binary content (track data itself)
        • modify album/track metadata tags
        • re-transcode as necessary
      • Make album private (default)
      • Make album public
      • Set album price
      • Set track price(s)
      • Set album/track format(s)
      • Tag/Untag album
      • View album
      • Play album
      • Buy album
      • Favorite/unfavorite album
      • Add comment to album
      • Delete album
      • Tag/untag track
      • View track
      • Play track
      • Buy track
      • Favorite/unfavorite track
      • Add comment to track
    • Article support:
      • Create new article
      • Modify existing article
      • Make article private (default)
      • Make article public
      • Add comment to article
      • Approve comment (publish to article)
      • Reject comment (do not publish to article)
    • RSS Feeds:
      • Newest Uploads
      • Newest Articles
      • Newest Comments
      • Favorite Albums
      • Favorite Tracks
      • Purchases
    • Storefront support:
      • Payment gateway integration(s):
        • Paypal
      • Digital delivery
    • Metrics
      • access logging
      • purchase logging

Long Term Tasks

Our long term goals target a version of Aural Isle that will enable emergent network effects by making it easy for you (and optionally others) to share your work with their social networks in such a way to provide increased visibility without giving up control over who can access and promote your work.

  • Datastore
    • support for more robust RDBMSs
      • postgres
      • mariadb
      • other?
  • Authentication/Authorization
    • twitch account support
    • discord account support
    • youtube account support?
  • Content Management
    • Label support:
      • manage multiple artists
    • Playlist support:
      • Create new playlist
      • Edit playlist
      • Share playlist
      • Make playlist public
      • Make playlist private
      • Subscribe to playlist
      • Delete playlist
  • Storefront support:
    • Payment gateway integrations:
      • stripe
      • square
      • liberapay
      • other?
    • Physical delivery/fulfillment support
  • Federation support:
    • Federation via RSS
    • Federation via ActivityPub
    • Federation via WebMentions

Technology

We will be using the rust programming language to provide a single binary executable for supported platforms. We will be leveraging the warp crate among others. We will provide thorough installation, operations, and maintenance documentation for various deployment scenarios. We will also offer a managed, hosted solution with a clear and transparent pricing model for people who want to use Aural Isle but are not interested in hosting it themselves. The managed solution will not have any material difference from the self-hosted version and will not include any additional functionality not provided by the self-hosted version.

Contributing

We welcome contributors from all walks of life and at all experience levels, so long as they are willing to work with all of our contributors in an environment where respect and acceptance are the baseline. More detailed contributor guidelines will be forthcoming as soon as our intial Code of Conduct and Contributor Guidelines have been authored and published.

License

This project is licensed under the GNU Affero General Public Licence (AGPL) version 3 or later at your discretion. See https://www.gnu.org/licenses/agpl-3.0.en.html or the LICENSE file in the code repository for full details.

Contact

This project is hosted by https://mountaintown.technology and is currently being maintained by:

  • Sundog, who can be reached in the fediverse at @djsundog@toot-lab.reclaim.technology and via email at sundog@reclaim.technology
  • Andrew, who can be reached in the fediverse at @ajroach42@retro.social and via email at me@andrewroach.net