The bmannconsulting.com website

Tangara and Ampache and more

+100
_notes/Ampache TinyHome Install.md
···
+
---
+
tags:
+
- howto
+
- music
+
- Bandcamp
+
---
+
Yes, it's been almost a year since I did my [[Lenovo m900 Tiny Setup]] aka "TinyHome" as I'm now calling it.
+
+
It's still on a free [[Cloudron]] install, which means it's limited to 2 apps. The home page at <https://home.bmann.ca> is using Cloudron's [[Surfer]] app.
+
+
Because of my [[Tangara Setup]], I started digging into how I use my music, which lead to looking at what music servers Cloudron supports.
+
+
* Koel
+
* Navidrone
+
* [[Ampache]]
+
+
I went with Ampache after looking through the options, as it seemed to be most focused on file management. Here's the [Cloudron Ampache Docs](https://docs.cloudron.io/apps/ampache/).
+
+
Since I downloaded a bunch of my Bandcamp purchases to add to the [[Tangara]] SD Card, I figured I could at least keep music around on my local network rather than taking up space on my laptop.
+
+
## Shared Volumes
+
+
How to make music files easily available on my local network, and also accessible and manageable from my desktop?
+
+
Cloudron supports [Cloudron Volumes](https://docs.cloudron.io/volumes/):
+
+
> Volumes are local or remote file systems. They can be used as an app's main data storage or as a shared storage location between apps.
+
+
I used the Filesystem type, and created a new mount called "Shared" at `/srv`, one of the allow-listed paths that are supported for this purpose.
+
+
First, I went into the configuration for my main [[Surfer]] install, and moved it's Location to this "Shared" mount, with no prefix.
+
+
This means the entire `/srv` tree is now the root of the Surfer install. The `public` folder are where the web accessible files live. I made a `music` folder inside there. I also turned off public folder listing.
+
+
For the Cloudron [[Ampache]] install, I setup "Shared" as an additional mountpoint (keeping it's install Location). From the Ampache install's point of view, it's available at `/media/Shared`, and I added the music folder as a new catalog, with full path `/media/Shared/public/music`.
+
+
## Moving Music
+
+
I can now mount that music folder via WebDAV in the MacOS finder or other compatible tools, and browse / upload / delete / edit the music folder as needed.
+
+
As it turned out, I mounted the Tangara SD Card, and just drag and dropped all of the folders in it to the WebDAV mount...and it just worked!
+
## Ampache Uploads
+
+
I enabled Uploads for users on Ampache (which took some doing in digging around to figure out in the interface and permissions, even with an Admin user). There's an upload page that defaults to the music folder, and it will read the tags and organize into artist folders with album sub folders.
+
+
If I make changes via WebDAV, I can hit Reload in Ampache for it to rescan the folder and import changes.
+
+
What I ended up doing was completing my mission of downloading all my Bandcamp purchases, and using the Ampache Uploads interface to add them. Then I ran [[beets]] to transfer all those over to the Tangara SD Card.
+
+
## Sharing with Users
+
+
![Screenshot of Ampache home dashboard](/assets/2024/amperfy-home-dashboard.jpg)
+
+
The Ampache install is on my home server, and you have to be logged in to listen. I've invited a few people to kick the tires on it.
+
+
The screenshot above has me logged in and showing the "Random" and "Trending" (from user listens) sections of the home dashboard. There are some "Now Playing" and "Recently Played" sections that show more user info.
+
+
There are some Guest settings that I haven't experimented with yet.
+
+
One of the things you can do is [add a catalog that is actually a remote server](https://github.com/ampache/ampache/wiki/API-RPC). So a number of people running their own installs can share their music that way.
+
+
This is one of the first use cases which I see being immediately interesting where everyone can run their own install and then just share each other's catalogs. I'm going to see about running on instance on the [[Z-Space]] local network.
+
+
## iTunes Match and getting out of iTunes
+
+
I'm a long time subscriber to [[iTunes Match]], and while it says it's not a backup service... I basically uploaded all of my music to it, as well as importing my Bandcamp purchases, and that's what makes my music available everywhere. At around $30CAD per year, this is incredibly cheap and convenient.
+
+
I've got a ton of this music downloaded to my phone and/or Macbook Air. I'm not sure which of them I've bought via iTunes[^buyingmusic] and which of them are from Bandcamp or somewhere else.
+
+
As it turns out ... I just went into the Music folder on my Macbook, and uploaded the AAC / m4a files, and Ampache seems to ... just work? I clearly don't understand music licensing in 2024, but I'm still glad I've been buying music!
+
+
So theoretically I should be able to just upload all my music my from iTunes library!
+
+
[^buyingmusic]: Both Rachael and I don't subscribe to streaming services. We have a Family Account on iTunes, which automatically shares iTunes purchases.
+
+
## Amperfy for iOS and MacOS
+
+
The Ampache web interface is not very good. But, a quick search found [[Amperfy]], an Ampache client written in Swift for iOS / iPadOS / MacOS.
+
+
You enter in the server address and your username and password, and you've got a full featured client with modern features.
+
+
It synchs / downloads / caches music for offline use, which is what I had been doing for my iTunes usage as well. And whether you use the Ampache web interface or Amperfy, all the plays and favorites and ratings are reflected everywhere. Nice!
+
+
![Screenshot of Amperfy on MacOS looking at the Dreamland album by Glass Animals](/assets/2024/amperfy-macos-dreamland-glass-animals.png)
+
## Other Features
+
+
I'm still digging through other Ampache features. The [Ampache Github Wiki](https://github.com/ampache/ampache/wiki/) seems to have the most stuff but is a mix of different versions and confusing to a new user like me, never mind pages of ACLs and other settings that I'll need to dig through.
+
+
You can add Podcasts and Radio Stations, so I grabbed the [[Vancouver Co-Op Radio]] stream from the [Listen Live page](https://coopradio.org/listen-live/). You have to view source to get the URL, `https://listen-coopradio.sharp-stream.com/coopradio.mp3`.
+
+
Democratic play is where users in a shared space like an office can "vote" on what music to play.
+
+
Localplay are all about some local network interfaces that don't look like they apply to anything I need. I can play from one of my devices and then AirPlay to my local Sonos.
+
+
There are [many plugins](https://github.com/ampache/ampache/wiki/ampache-plugins). LOL at the comment on the wiki: "TODO these need to be documented for regular users"
+
+
+
+
+
+15
_notes/Blacksky.md
···
+
---
+
link: https://www.blackskyweb.xyz/
+
github: https://github.com/blacksky-algorithms/rsky/tree/main/rsky-pds
+
tags:
+
- organization
+
- ATProtocol
+
support: https://opencollective.com/blacksky
+
---
+
Building the Black social layer for the decentralized web.
+
+
> Blacksky is providing a platform to **amplify, protect, and moderate** Black content so users can **safely build community** online.
+
The mission and purpose of the project is to **de-center whiteness** as the default and to provide a space for Black folk to discuss the Black everyday in a way that feels affirming.
+
As existing networks like Twitter (a uniquely Black platform with 25% Black users) continue to deteriorate by way of platform decay, this mission is all the more urgent.
+
>
+
> Built on the [[ATProtocol]] and written largely in Rust, Blacksky is comprised of microservices that analyze, aggregate, and output content created by and for Black users. Blacksky intersects with culture, machine learning, and decentralized web technologies to provide a safe social experience for Black users that allows them to feel seen without worrying about threats from bad actors.
+37
_notes/Bluesky PDS.md
···
+
---
+
github: https://github.com/bluesky-social/pds/
+
tags:
+
- ATProtocol
+
- Bluesky
+
---
+
> Bluesky [[PDS]] (Personal Data Server) container image, compose file, and documentation
+
+
Written in TypeScript and using [[Caddy]], this is an all in one PDS installer that requires a dedicated server or VPS. It's the same codebase that [[Bluesky]] runs for their production instances.
+
+
## Server Recommendations
+
Very minimal requirements.
+
+
| Operating System | Ubuntu 22.04 |
+
| ---------------- | ------------ |
+
| Memory (RAM) | 1 GB |
+
| CPU Cores | 1 |
+
| Storage | 20 GB SSD |
+
| Architectures | amd64, arm64 |
+
| Number of users | 1-20 |
+
+
## bringyourown.computer PDS
+
+
My own PDS, running on [[Hostinger]]
+
+
<blockquote class="bluesky-embed" data-bluesky-uri="at://did:plc:lmmeta6tejj3fhn5xvzl5eoi/app.bsky.feed.post/3lazundqk4c2y" data-bluesky-cid="bafyreid7pbzyn4ezygqutyfsx64cfdt5bbt3ekne6ph23cji65rucw2xtq"><p lang="en">I installed my own PDS on a new KVM-1 from Hostinger.
+
+
I had to comment out the OS version check in the installer (Ubuntu 22.04.1 messed it up).
+
+
DNS on Cloudflare. Domain from Spaceship.
+
+
Took like 15min total. This is easy!</p>&mdash; Boris (<a href="https://bsky.app/profile/did:plc:lmmeta6tejj3fhn5xvzl5eoi?ref_src=embed">@boris.bringyourown.computer</a>) <a href="https://bsky.app/profile/did:plc:lmmeta6tejj3fhn5xvzl5eoi/post/3lazundqk4c2y?ref_src=embed">November 15, 2024 at 6:43 PM</a></blockquote><script async src="https://embed.bsky.app/static/embed.js" charset="utf-8"></script>
+
+
## New Account Creation via Invite Code and Bluesky Client
+
+
<blockquote class="bluesky-embed" data-bluesky-uri="at://did:plc:wn774ojgaemblghs6xduynyq/app.bsky.feed.post/3lazvnwr4ve2q" data-bluesky-cid="bafyreidb5ab6hafiznmp2mi64dsk7ddkosqquktgk433dqfedtcvtmrinu"><p lang="en">Huh. So you can, like, just create your own PDS. And invite codes. And make new accounts.<br><br><a href="https://bsky.app/profile/did:plc:wn774ojgaemblghs6xduynyq/post/3lazvnwr4ve2q?ref_src=embed">[image or embed]</a></p>&mdash; BringYourOwn.Computer (<a href="https://bsky.app/profile/did:plc:wn774ojgaemblghs6xduynyq?ref_src=embed">@computer.bringyourown.computer</a>) <a href="https://bsky.app/profile/did:plc:wn774ojgaemblghs6xduynyq/post/3lazvnwr4ve2q?ref_src=embed">November 15, 2024 at 7:01 PM</a></blockquote><script async src="https://embed.bsky.app/static/embed.js" charset="utf-8"></script>
+
+5 -6
_notes/Bring Your Own Server.md
···
Maybe not quite the same category, these are packages that often take over an entire server in order to install apps and manage the entire operating system.
-
* [[Cloudron]]
-
* [[Coolify]]
+
* [[Cloudron]]: I manage cloud VPS installs for [[CoSocial]], [[Commons Computer]], an old Fission / Causal Islands instance, and use this at home on the [[Lenovo M900 Tiny]].
+
* [[Coolify]]: I've done a couple of test installs, and the most interesting part is that unlike Cloudron, you can add multiple servers and manage installs across them. Mostly about individual docker app installs, not integrated system management.
* [[Cosmos Server]]
-
* [[Yunohost]]
-
* [[CasaOS]]
-
* [[Unraid]]
-
*
+
* Yunohost: having looked at the security model, I would never use this
+
* CasaOS
+
* [[Unraid]]: a paid license option for DIY NAS installs
+2 -4
_notes/Cloudron.md
···
For the difference in price, I'd recommend at least the KVM 4 with 16GB RAM. Those are USD prices. You can use my referral code for one-click Cloudron installs on a [Hostinger VPS](https://hostinger.com/vps-hosting?REFERRALCODE=1BORIS58)
#### Home Hosting
-
I'd love to try running a Cloudron install at home, but it all seems quite a bit trickier. You're still looking at a ~$500 mini server purchase, which is like 2 - 3 years of VPS hosting costs!
-
+
I have an install on my [[Lenovo M900 Tiny]]. Refurbished or re-purposed hardware can be cheap, but it's also more things you have to know about, and home Internet connections can be unstable.
### DNS and Domains
You'll need at least one domain name and more likely will have at least 2, so add another $10 - $30 per year in domain registration fees.
···
* Peertube, ActivityPub enabled video platform. Can sync with or import from YouTube
* Wordpress, self-hosted version that is setup and maintained for you
* MediaWiki, the wiki platform that powers Wikipedia and other sites (DokuWiki, HedgeDoc, WikiJS, Confluence, BookStack, and Outline are other supported apps that are wiki variants with slightly different specializations)
-
## Forum
The [Cloudron forum](https://forum.cloudron.io/) has lots of great discussions on apps, setup and use cases, as well as wishlists for new apps, and more.
## Alternatives
-
[[Co-op Cloud]]
+
See [[Bring Your Own Server]] and also [[Co-op Cloud Alternatives]]
+2
_notes/Lenovo M900 Tiny.md
···
tags:
- minipc
- Lenovo
+
aliases:
+
- TinyHome
---
Follow along with setup: [[Lenovo m900 Tiny Setup]]
+5 -2
_notes/Lenovo m900 Tiny Setup.md
···
OK, we're up and running. I don't really have a plan for this machine, other than it's _inside_ my home. Let's setup a `home` group for permissions, which just has my `boris` user in it. I might give some other people accounts on Cloudron, but they shouldn't have access to this home group.
I guess I'll start by just creating a [[Surfer]] app running, for static file serving and WebDAV, right at the base domain <https://home.bmann.ca>.
+
## Ampache Install
-
## Custom IPFS App
+
On [December 28th](https://bmannconsulting.com/journal/2024-12-28-0121/), I did an [[Ampache TinyHome Install]].
+
+
This is still a free Cloudron install, limited to 2 apps, so I have a [[Surfer]] install, and now this Ampache setup.
-
I’m going to add [[IPFS Self Hosting]] as a custom app.
+
Yes, I'd like to get a [[PDS]] running locally at home, too, and ideally packaged for Cloudron.
+10 -1
_notes/PDS.md
···
tags:
- abbreviation
- ATProtocol
+
- selfhosting
---
Personal Data Server
-
Where your content is stored in [[ATProtocol]]
+
Where your content is stored in [[ATProtocol]].
+
+
## Bluesky PDS
+
+
The [[Bluesky PDS]] implementation is in TypeScript.
+
+
## rsky
+
+
The [[Blacksky]] Rust implementation is called [[rsky]]
+20
_notes/Surfer.md
···
+
---
+
tags:
+
- CloudronApp
+
- WebDAV
+
- app
+
- Cloudron
+
- opensource
+
github: https://github.com/cloudron-io/surfer
+
link: https://docs.cloudron.io/apps/surfer/
+
---
+
The basic website serving and file sharing app by the [[Cloudron]] team.
+
+
It has [[WebDAV]] support, so you can mount it in MacOS finder and other tools, and edit and save websites and files directly.
+
+
The CLI tool can be combined with an access token to publish to the site.
+
+
#todo [[Using Surfer to publish websites to Cloudron from Github Actions]]
+
+
You can login to a web interface at `/_admin` or finally, use SFTP.
+
+83
_notes/Tangara Setup.md
···
+
---
+
tags:
+
- music
+
- hardware
+
---
+
Documenting my [[Tangara]] music player setup.
+
+
<blockquote class="bluesky-embed" data-bluesky-uri="at://did:plc:2cxgdrgtsmrbqnjkwyplmp43/app.bsky.feed.post/3ldu2c2r5jc2u" data-bluesky-cid="bafyreidw7cc6dm25ydqk7enm63x6ezrmdneoo5rlpiozvnsnasxkydatym"><p lang="en">I got my Tangara music player! cooltech.zone/tangara/
+
+
It takes an SD card or USB storage.
+
+
I don’t have an SD card handy so will need to get one.
+
+
Yes that’s a click wheel!<br><br><a href="https://bsky.app/profile/did:plc:2cxgdrgtsmrbqnjkwyplmp43/post/3ldu2c2r5jc2u?ref_src=embed">[image or embed]</a></p>&mdash; Boris (<a href="https://bsky.app/profile/did:plc:2cxgdrgtsmrbqnjkwyplmp43?ref_src=embed">@bmann.ca</a>) <a href="https://bsky.app/profile/did:plc:2cxgdrgtsmrbqnjkwyplmp43/post/3ldu2c2r5jc2u?ref_src=embed">December 21, 2024 at 3:25 PM</a></blockquote><script async src="https://embed.bsky.app/static/embed.js" charset="utf-8"></script>
+
+
Adventures in SD Cards and beets:
+
+
<blockquote class="bluesky-embed" data-bluesky-uri="at://did:plc:2cxgdrgtsmrbqnjkwyplmp43/app.bsky.feed.post/3ldwi4d7zsc2p" data-bluesky-cid="bafyreiaiu775pb5oqihppu35fge4xi3ax3cyr2fdbsah4m4woacemqgjd4"><p lang="en">Ok got an SD card at Canadian Tire.
+
+
Next, I have to get music files this is compatible with.
+
+
Briefly messed around with bandcampsync python script (copy cookie and session values from dev tools in browser LOL)
+
+
Guess I have to rethink music access again! Going to look at what Cloudron supports.<br><br><a href="https://bsky.app/profile/did:plc:2cxgdrgtsmrbqnjkwyplmp43/post/3ldwi4d7zsc2p?ref_src=embed">[image or embed]</a></p>&mdash; Boris (<a href="https://bsky.app/profile/did:plc:2cxgdrgtsmrbqnjkwyplmp43?ref_src=embed">@bmann.ca</a>) <a href="https://bsky.app/profile/did:plc:2cxgdrgtsmrbqnjkwyplmp43/post/3ldwi4d7zsc2p?ref_src=embed">December 22, 2024 at 2:36 PM</a></blockquote><script async src="https://embed.bsky.app/static/embed.js" charset="utf-8"></script>
+
## beets
+
+
[[beets]] is a command line tool that [Tangara recommends on their Music Librar page](https://cooltech.zone/tangara/docs/music-library/), their notes on beets copied here between the two lines:
+
+
---
+
+
Beets is a cross-platform command-line tool for organising your music collection. It handles normalising your directory structure and metadata formats, filling in missing metadata, and performing bulk operations on your collection. It also has a great ecosystem of plugins that extend its capabilities.
+
+
Once you've imported your collection into Beets, you can easily transcode anything in your library that can't be played by Tangara using the `convert`:
+
+
```
+
convert:
+
embed: no
+
format: opus
+
```
+
+
You can then make a converted copy of your entire library using `beet convert -d /path/to/sdcard`.
+
+
Note that `beet convert` will not overwrite existing files. This makes it very easy to sync any newly added tracks to Tangara, by simply repeating the same conversion command.
+
+
---
+
+
Here's what my beets config (in `~/.config/beets/config.yaml`) looks like:
+
+
```yaml
+
directory: /Volumes/TANGARA/Music
+
library: ~/iCloud/Documents/BeetsLibrary/tangaralibrary.db
+
import:
+
  move: yes
+
```
+
+
The library is backed up and synched in my iCloud Drive, and the Volume is the mounted SD card.
+
+
I run it using this command:
+
+
```zsh
+
beet import /path/to/music
+
```
+
+
## Loading Music
+
+
The [[Ampache TinyHome Install]] details how I've shuffled files around, and I should have my entire library available there soon enough.
+
+
How best to synch / update to the Tangara is unclear. Beets can move stuff around and de-duplicate, and I can open the WebDAV interface on my Macbook and I guess have beets run over the network?
+
+
> [!NOTE]
+
> I have to update my beets config, that import / move yes currently moves / deletes from the source. I can also add a convert command to go AAC -> OPUS or mp3 as needed.
+
+
## Tangara Companion Firmware Updater
+
+
The [Tangara Companion is on github](https://github.com/haileys/tangara-companion). For MacOS, it's an unsigned release for x86 only, so you'll need to go into System Preferences > Security to allow it to run.
+
+
Once I got it to run, it never detected the Tangara when it was plugged in. Will have to check back on future releases.
+
+
More on [flashing firmware on the Cooltech Zone site](https://cooltech.zone/tangara/docs/flashing/).
+
+
## USB Block Storage
+
+
It looks like I need the new firmware update to get this working correctly, where I can just use a USB-C cable and plug it into my Macbook and it will mount. It does show as connected when I use a USB-C cable, and charges from my Macbook, but it doesn't mount.
+18
_notes/Tangara.md
···
Ran a [campaign on CrowdSupply](https://www.crowdsupply.com/cool-tech-zone/tangara), where I pre-ordered in February 2024. I received the player in mid December 2024.
<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/1C597AkhGtw?si=Dq-U3MIQyTsBa04d" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
+
+
## Open Hardware
+
+
The sources are available on Sourcehut <https://sr.ht/~jacqueline/tangara/sources>
+
+
## Tangara Companion
+
+
Tool for updating firmware, both graphical and CLI tooling <https://github.com/haileys/tangara-companion>
+
+
## Other things to explore
+
+
* [Lua scripting](https://cooltech.zone/tangara/docs/lua/) - likely not for me, but will be interesting to see what other people come up with!
+
* [Assembly / Disassembly](https://cooltech.zone/tangara/docs/assembly/) - yes, I'd love a custom printed case!
+
* [Themes](https://cooltech.zone/tangara/docs/themes/) - it's a colour screen so you can do Lua stuff with it
+
+
## Personal Setup
+
+
I'm keeping notes at [[Tangara Setup]]
+16
_notes/Unraid.md
···
+
---
+
link: https://unraid.net/
+
tags:
+
- homelab
+
- selfhosting
+
- NAS
+
---
+
> Unraid is an operating system for network-attached storage that lets you use what you have to build the server you want. Mix and match drives, securely store and share data, and manage VMs and Docker applications—all from a powerful, web-based interface.
+
+
The installation and operation is via a USB stick, which just seems great versus dealing with wiping drives and partititions.
+
+
Most interesting to me is running Windows in a VM. You can pass through a graphics card to enable gaming or video editing.
+
+
I don't want to manage a dedicated Windows box, and also don't want to dual boot and take down a Linux server, so this seems ideal.
+
+
I bought a licene and a test install on [[MiniPC Z-Space Server]], which isn't quite the right hardware for a Windows VM, because it doesn't have good graphic card options.
+16
_notes/Using Surfer to publish websites to Cloudron from Github Actions.md
···
+
---
+
tags:
+
- howto
+
---
+
[[Surfer]] has a CLI tool that can be installed to automate publishing as part of [[Github Actions]] or other CI/CD workflows.
+
+
> You can setup your CI/CD to automatically push static files to surfer using the [CLI](https://docs.cloudron.io/apps/surfer/#cli-tool) as follows:
+
>
+
> - First, create an `Access Token` in surfer from the `Settings` menu.
+
> - Install the surfer cli tool as part of the CI/CD pipeline.
+
> - Push the artifacts (`dist/` in the example below):
+
+
```shell
+
surfer put --token api-7e6d90ff-5825-4ebe-a85b-a68795055955 --server surfer.cloudron.
+
```
+
+17
_notes/beets.md
···
+
---
+
link: https://beets.io/
+
tags:
+
- music
+
- python
+
- CLI
+
- opensource
+
github: https://github.com/beetbox/beets
+
---
+
Beets is the best command-line tool for viewing, querying, and renaming your music collection.
+
+
> Because beets is designed as a library, it can do almost anything you can imagine for your music collection. Via [plugins](http://beets.readthedocs.org/page/plugins/), beets becomes a panacea:
+
>
+
> - Fetch or calculate all the metadata you could possibly need: [album art](http://beets.readthedocs.org/page/plugins/fetchart.html), [lyrics](http://beets.readthedocs.org/page/plugins/lyrics.html), [genres](http://beets.readthedocs.org/page/plugins/lastgenre.html), [tempos](http://beets.readthedocs.org/page/plugins/echonest_tempo.html), [ReplayGain](http://beets.readthedocs.org/page/plugins/replaygain.html) levels, or [acoustic fingerprints](http://beets.readthedocs.org/page/plugins/chroma.html).
+
> - Get metadata from [MusicBrainz](http://musicbrainz.org/), [Discogs](http://www.discogs.com/), or [Beatport](http://www.beatport.com/). Or guess metadata using songs’ filenames or their acoustic fingerprints.
+
> - [Transcode audio](http://beets.readthedocs.org/page/plugins/convert.html) to any format you like.
+
> - Check your library for [duplicate tracks and albums](http://beets.readthedocs.org/page/plugins/duplicates.html) or for [albums that are missing tracks](http://beets.readthedocs.org/page/plugins/missing.html).
+16
_notes/iTunes Match.md
···
+
---
+
link: https://support.apple.com/en-ca/108935
+
tags:
+
- Apple
+
- iTunes
+
- music
+
---
+
iTunes Match uploads and syncs all of your music between all of your devices, including music you add from your own sources -- i.e. not just purchased from iTunes Store.
+
+
> iTunes Match uploads your music library from the Apple Music app on your Mac or PC. Then you can access your music library on all of your devices that have [Sync Library turned on](https://support.apple.com/en-ca/118285).
+
>
+
> To subscribe to iTunes Match, update your Mac to the [latest version of macOS](https://support.apple.com/en-ca/108382). On your PC, make sure that you have the [latest version of the Apple Music app for Windows](https://support.apple.com/en-ca/118290).
+
>
+
i> iTunes Match isn't a back up service, so make sure to always have a back up of your music collection before you make any changes.
+
+
In Canada, as of December 2024, iTunes Match costs $31.35 CAD annually.
+8
_notes/rsky.md
···
+
---
+
github: https://github.com/blacksky-algorithms/rsky/tree/main/rsky-pds
+
tags:
+
- ATProtocol
+
- Rust
+
- pds
+
---
+
Rust implementation of [[PDS]] that is part of [[Blacksky]]. Pronounced "risky"
assets/2024/amperfy-home-dashboard.jpg

This is a binary file and will not be displayed.

assets/2024/amperfy-macos-dreamland-glass-animals.png

This is a binary file and will not be displayed.