diff --git a/README.md b/README.md index 8af026c..a3fa45f 100644 --- a/README.md +++ b/README.md @@ -2,53 +2,15 @@ A containerized RuneLite client that runs in your browser using Selkies WebRTC technology. This allows you to play Old School RuneScape through RuneLite from any device with a web browser, including mobile devices and tablets. -## Features - -- 🌐 **Browser-based**: Access RuneLite through any modern web browser -- 📱 **Mobile-friendly**: Optimized for iOS and Android devices with PWA support -- 🖥️ **Full RuneLite experience**: Complete RuneLite client with all plugins and features -- 🔒 **Secure**: Runs in an isolated Docker container -- ⚡ **Low latency**: WebRTC streaming for responsive gameplay - ## Quick Start -### Using Docker Run - ```bash docker run -d \ --name runelite \ -p 8181:8181 \ - -v runelite-config:/config \ - your-registry/runelite-docker:latest -``` - -### Using Docker Compose - -Create a `docker-compose.yml` file: - -```yaml -version: '3.8' - -services: - runelite: - image: your-registry/runelite-docker:latest - container_name: runelite - ports: - - "8181:8181" - volumes: - - runelite-config:/config - environment: - - SELKIES_FRAMERATE=30 - restart: unless-stopped - -volumes: - runelite-config: -``` - -Then run: - -```bash -docker-compose up -d + -v /path/to/appdata/.runelite:/config/.runelite:rw \ + -v /path/to/appdata/.credentials/credentials.properties:/config/.runelite/credentials.properties:ro \ + ghcr.io/sethwv/rune-docker:latest ``` ## Access @@ -66,30 +28,6 @@ Once the container is running, access RuneLite through your web browser: 4. The RuneLite PWA will be added to your home screen 5. Launch from home screen for a fullscreen experience -## Building from Source - -Clone this repository and build the image: - -```bash -git clone -cd rune-docker -docker build -t runelite-docker . -``` - -## File Structure - -``` -rune-docker/ -├── Dockerfile # Main container definition -├── runelite # RuneLite startup script -├── supervisord.conf # Process management configuration -├── icons/ # Web app icons and manifest -│ ├── manifest.json # PWA manifest for mobile installation -│ ├── favicon.ico # Browser favicon -│ └── *.png # Various icon sizes for different devices -└── README.md # This file -``` - ## Technical Details ### Base Image @@ -107,25 +45,6 @@ rune-docker/ - WebRTC for low-latency audio/video streaming - No additional port forwarding required -## Troubleshooting - -### Container won't start -- Check if port 8181 is already in use: `netstat -tlnp | grep 8181` -- Ensure Docker has sufficient resources allocated - -### Poor performance -- Reduce `SELKIES_FRAMERATE` to 24 or lower -- Ensure stable network connection - -### RuneLite settings not persisting -- Ensure the `/config` volume is properly mounted -- Check volume permissions: `docker exec runelite ls -la /config` - -### Mobile browser issues -- Use HTTPS (port 8181) instead of HTTP -- Enable "Desktop Mode" if the interface appears broken -- Clear browser cache and reload - ## RuneLite Account Integration ### ⚠️ Important Security Warning @@ -148,19 +67,26 @@ If you accept these risks and want RuneLite account features: # Windows: %USERPROFILE%\.runelite # macOS: ~/.runelite # Linux: ~/.runelite - cp -r ~/.runelite /path/to/docker/volumes/runelite-data/ + cp -r ~/.runelite /path/to/appdata/.runelite + + # Set proper permissions for security + chmod 700 /path/to/appdata/.runelite ``` -2. **Update your docker-compose.yml:** - ```yaml - services: - runelite: - volumes: - - /path/to/your/.runelite:/config/.runelite - - runelite-config:/config +2. **For enhanced security, separate credentials file:** + ```bash + # Create secure credentials directory + mkdir -p /path/to/appdata/.credentials + chmod 700 /path/to/appdata/.credentials + + # Move credentials file to separate location + mv /path/to/appdata/.runelite/credentials.properties /path/to/appdata/.credentials/ + chmod 600 /path/to/appdata/.credentials/credentials.properties ``` -3. **For Jagex Account users:** +3. **Run with the volume mappings** (see "With Account Integration" example above) + +4. **For Jagex Account users:** - Ensure `credentials.properties` is present in your `.runelite` folder - See [RuneLite Jagex Account Guide](https://github.com/runelite/runelite/wiki/Using-Jagex-Accounts) @@ -172,15 +98,17 @@ If using account integration: - **Use a Dedicated Account**: Consider using a separate RuneScape account for this setup - **Regular Monitoring**: Monitor your account for unauthorized access - **Secure the Host**: Ensure the Docker host system is properly secured -- **File Permissions**: Restrict access to the `.runelite` folder on the host system: +- **File Permissions**: Restrict access to folders on the host system: ```bash - chmod 700 /path/to/your/.runelite + chmod 700 /path/to/appdata/.runelite + chmod 700 /path/to/appdata/.credentials + chmod 600 /path/to/appdata/.credentials/credentials.properties ``` ### Alternative: Guest Mode For maximum security, run without account integration: -- No `.runelite` folder mapping +- No `.runelite` folder or credentials mapping - RuneLite runs in guest mode - No plugin sync or account-specific settings - Complete isolation from your main account @@ -191,22 +119,4 @@ For maximum security, run without account integration: - RuneLite configuration is isolated in Docker volumes - HTTPS is enabled by default for secure connections - Consider using a reverse proxy for additional security in production -- **WARNING**: Account integration exposes significant security risks (see above section) - -## Contributing - -1. Fork the repository -2. Create a feature branch -3. Make your changes -4. Test with `docker build` and `docker run` -5. Submit a pull request - -## License - -This project packages RuneLite in a Docker container. Please refer to RuneLite's license for the client software. - -## Acknowledgments - -- [RuneLite](https://runelite.net/) - The amazing OSRS client -- [Selkies](https://github.com/selkies-project/selkies-gstreamer) - WebRTC streaming technology -- [LinuxServer.io](https://www.linuxserver.io/) - Base image and containerization patterns \ No newline at end of file +- **WARNING**: Account integration exposes significant security risks (see above section) \ No newline at end of file