{"id":24011953,"url":"https://github.com/foonerd/volumio-web-control-proxy","last_synced_at":"2025-10-25T18:31:53.799Z","repository":{"id":270836454,"uuid":"911594157","full_name":"foonerd/volumio-web-control-proxy","owner":"foonerd","description":"A standalone, lightweight web-based control interface for [Volumio](https://volumio.org/), acting as a proxy substitute for users who need a functional web control interface behind a reverse proxy setup.","archived":false,"fork":false,"pushed_at":"2025-01-03T12:28:54.000Z","size":147,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-03T13:19:47.738Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/foonerd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-03T11:38:35.000Z","updated_at":"2025-01-03T12:28:58.000Z","dependencies_parsed_at":"2025-01-03T13:30:02.838Z","dependency_job_id":null,"html_url":"https://github.com/foonerd/volumio-web-control-proxy","commit_stats":null,"previous_names":["foonerd/volumio-web-control-proxy"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foonerd%2Fvolumio-web-control-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foonerd%2Fvolumio-web-control-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foonerd%2Fvolumio-web-control-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foonerd%2Fvolumio-web-control-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/foonerd","download_url":"https://codeload.github.com/foonerd/volumio-web-control-proxy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240688489,"owners_count":19841747,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-08T05:43:23.132Z","updated_at":"2025-10-25T18:31:53.690Z","avatar_url":"https://github.com/foonerd.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Volumio Web Control Proxy\n\nA standalone, lightweight web-based control interface for [Volumio](https://volumio.org/), acting as a proxy substitute for users who need a functional web control interface behind a reverse proxy setup.\n\n## Overview\n\nVolumio's native UI is not reverse-proxy compatible. This project solves that limitation by offering a simplified and extensible control interface that communicates with Volumio's REST API.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/screenshots/screenshot1.png\" alt=\"Volumio Web Control Proxy Interface\" width=\"75%\"\u003e\n\u003c/p\u003e\n\n### Features\n\n- **Playback Controls:** Play, pause, stop, next, previous, and volume control.\n- **Now Playing:** Real-time display of the current track, including album art.\n- **Queue Management:** Add, reorder, and remove items from the playback queue.\n- **Source Browsing:** Explore and play content from multiple sources.\n- **Playlist Support:** Select and play user-created playlists.\n- **Web Radio Support:** Play and manage web radio streams.\n\n---\n\n### Project Goals\n\n- **Ease of Use:** Simplified UI for key Volumio functions.\n- **Customizability:** Fully customizable HTML, CSS, and JS.\n- **Future Development:** Extensible architecture to incorporate advanced API features.\n\n---\n\n## Getting Started\n\n### Prerequisites\n\n1. A running Volumio instance on your network.\n2. A web server (Apache, Nginx) or Docker installed on your host machine.\n\n---\n\n## Installation\n\n#### Option 1: Using a Web Server\n\n1. Clone this repository:\n\n   ```bash\n   git clone https://github.com/yourusername/volumio-web-control-proxy.git\n   cd volumio-web-control-proxy\n   ```\n\n2. Copy the contents of `src/` to your web server's document root (e.g., `/var/www/html/`):\n\n   ```bash\n   sudo cp -r src/* /var/www/html/\n   ```\n\n3. Start the web server and ensure it serves the files.\n\n4. Open your browser and navigate to `http://your_server_ip/`.\n\n---\n\n#### Option 2: Using Docker\n\n1. Navigate to the project root directory:\n\n   ```bash\n   cd volumio-web-control-proxy\n   ```\n\n2. Build the Docker image:\n\n   ```bash\n   docker build -t volumio-web-control-proxy .\n   ```\n\n3. Start the container:\n\n   ```bash\n   docker run -d -p 8080:80 --name volumio-web-control-proxy volumio-web-control-proxy\n   ```\n\n4. Open your browser and navigate to `http://your_docker_host_ip:8080/`.\n\n---\n\n## Configuration\n\n### Setting Up Reverse Proxy\n\nThis project includes configuration files for both Apache and Nginx to serve the web control interface.\n\n#### Placeholder `\u003cvolumio_ip\u003e`\n\nThe `\u003cvolumio_ip\u003e` placeholder in the `volumio.conf` files must be replaced with the IP address of your Volumio device. This allows the reverse proxy to forward API requests to the Volumio device.\n\nTo find your Volumio device's IP address, you can:\n\n1. Check your router's connected devices list.\n2. Use a network scanner like `nmap`.\n3. Access Volumio's settings through its native interface, where the IP address is displayed.\n\nFor example:\n\n```nginx\nproxy_pass http://192.168.1.100:3000;  # Replace 192.168.1.100 with your Volumio IP\n```\n\n```apache\nProxyPass /api/v1 http://192.168.1.100:3000/api/v1\nProxyPassReverse /api/v1 http://192.168.1.100:3000/api/v1\n```\n\n#### Configuring and Enabling the Reverse Proxy\n\n1. Update the `\u003cvolumio_ip\u003e` placeholder in the configuration file.\n2. Copy the configuration file to your server's configuration directory:\n   - **Apache**: `/etc/apache2/sites-available/volumio.conf`\n   - **Nginx**: `/etc/nginx/sites-available/volumio.conf`\n3. Enable the site:\n   ```bash\n   # Apache\n   sudo a2ensite volumio.conf\n   sudo systemctl reload apache2\n   \n   # Nginx\n   sudo ln -s /etc/nginx/sites-available/volumio.conf /etc/nginx/sites-enabled/\n   sudo systemctl reload nginx\n   ```\n4. Test your setup by navigating to the URL or IP where your proxy is hosted.\n\n## Usage\n\n1. Open the web interface in your browser.\n2. Use the navigation menu to switch between \"Now Playing\", \"Playlists\", \"Sources\", and \"Queue\".\n3. Enjoy controlling your Volumio device!\n\n---\n\n### Contributing\n\nWe welcome contributions! Please open issues or submit pull requests for:\n\n- Bug fixes.\n- New features.\n- UI/UX improvements.\n\n---\n\n### License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n\n---\n\n## Acknowledgments\n\n- Inspired by the [Volumio Community](https://community.volumio.org/).\n- Thanks to the contributors who helped refine this project.\n\n---\n\n## Repository Structure\n\n```\nvolumio-web-control-proxy/\n├── README.md\n├── LICENSE\n├── src/\n│   ├── index.html\n│   ├── script.js\n│   ├── style.css\n│   ├── style_alt.css\n│   ├── favicon.ico\n│   ├── assets/\n│   │   └── volumio-logo.png\n├── docker/\n│   ├── Dockerfile\n│   ├── docker-compose.yml\n├── server/\n│   ├── apache/\n│   │   └── volumio.conf\n│   └── nginx/\n│       └── volumio.conf\n└── docs/\n    └── screenshots/\n        └── screenshot1.png\n```\n\n---\n\n## Suggested Development Directions\n\n1. **Enhanced API Integration:** Extend the interface to include advanced Volumio features, such as Tidal Connect or Spotify Connect.\n2. **WebSocket Support:** Add support for Volumio's WebSocket API for real-time updates.\n3. **Theme Customization:** Allow users to choose between light and dark themes or customize colors.\n4. **Mobile Optimization:** Improve responsiveness for seamless mobile experience.\n5. **Third-Party Plugins:** Add support for popular third-party plugins via the interface.\n\n---\n\n## Versioning Information\n\n- **Project Version:** 1.0.2\n- **Compatible Volumio Versions:** 3.x and above\n\n### Changelog\n\n#### v1.0.2\n- Improvements:\n  - Style switch\n  - New modern style\n\n#### v1.0.1\n- Improvements:\n  - Playback controls\n  - Volume state\n  - Style correction\n\n#### v1.0.0\n- Initial release with:\n  - Playback controls\n  - Source browsing\n  - Playlist support\n  - Web radio support\n  - Docker and reverse proxy configuration\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoonerd%2Fvolumio-web-control-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffoonerd%2Fvolumio-web-control-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoonerd%2Fvolumio-web-control-proxy/lists"}