| containers/sleep-meditation | ||
| docs | ||
| stack | ||
| .gitignore | ||
| .last-branch | ||
| build-and-push.sh | ||
| README.md | ||
| version.txt | ||
Sleep Meditation
Sleep Meditation is a self-hosted web player for MP3 files, optimized for mobile use.
Goal
A simple website that can play MP3 audio while an iPhone screen is locked, as long as playback is started manually (iOS limitation).
Features
- Playlist through
mp3/playlist.json - Automatic track discovery from
/mp3/whenplaylist.jsonis missing - Standard HTML5 audio player
- Media Session API support (play/pause/next/previous on lock screen)
- Playlist ends at the last track (no automatic loop)
Back to startbutton resets to track 1 without autoplay- PWA manifest + service worker
- Containerized with Nginx
Repository layout
containers/sleep-meditation/: Docker image + web app filesstack/stack.yml: Portainer/Compose stackstack/sleep-meditation.env: environment variablesdocs/TECHNICAL.md: technical details and iPhone behavior
Deploy (Portainer)
- Deploy
stack/stack.ymlwith variables fromstack/sleep-meditation.env. - Ensure
${SLEEP_MEDITATION_MP3_PATH}points to a host folder containing MP3 files. - Optionally add
${SLEEP_MEDITATION_MP3_PATH}/playlist.jsonfor custom ordering/metadata. - Open
http://<host>:<port>and press Play manually once.
Playlist format
mp3/playlist.json
[
{
"title": "Deep Sleep Wave",
"artist": "Sleep Meditation",
"src": "/mp3/deep-sleep-wave.mp3"
}
]