Add Readme but not terrible
All checks were successful
Build & Push Docker Image / build-and-publish (push) Successful in 9s

This commit is contained in:
2025-10-08 14:45:03 -04:00
parent 2ae882e78d
commit 71d6ea5ca8

140
README.md
View File

@@ -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 <your-repo-url>
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
- **WARNING**: Account integration exposes significant security risks (see above section)