https://github.com/devforth/onlogs
Lightweight docker logs web viewer
https://github.com/devforth/onlogs
docker logs
Last synced: about 2 months ago
JSON representation
Lightweight docker logs web viewer
- Host: GitHub
- URL: https://github.com/devforth/onlogs
- Owner: devforth
- License: mit
- Created: 2022-09-29T08:04:31.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-04-22T13:54:27.000Z (2 months ago)
- Last Synced: 2025-04-22T14:50:04.797Z (2 months ago)
- Topics: docker, logs
- Language: Svelte
- Homepage:
- Size: 19.3 MB
- Stars: 88
- Watchers: 2
- Forks: 3
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# OnLogs - Lightweight docker logs web viewer
  

### Benefits
- π Simple and secure way to access logs of any Docker containers without server/SSH connection
- ποΈ Built with Golang & Svelte.js to extract maximum performance and keep the image and RAM footprint as small as possible. Logs storage implemented on top of lightweight LevelDB
- π§Έ Installation is easy as docker runs command/compose snippet. HTTP port exposed and could be routed from Nginx/Traefik/Directly
- π± Get every service realtime logs stream with 1 click![]()
- π± Check logs from your smartphone (insane, but we know it happens that you need it)
- π§Ύ Open-source, commercial-friendly MIT license
- πΎ Small size of Docker image (~ 13 MB)
- π₯ Share access to logs with team members, revoke any time### Features
- π» One host can be used to view logs from all other hosts in case you are running Cluster
- π Share log messages to colleagues via link![]()
- π½ Clear original docker logs to keep your storage size.
- π Error/Info/Debug Statistics
- π Search through logs (configurable case sensitivity)
- π View parameters (parsing JSON, showing local/UTC time for every logline)
- π΄ Realtime logs updating### Roadmap
- π Grouping hosts
- π· Search and filter by tags (log status, time)
- πPlugins and internal ability to notify about some event (e.g. notify when Error happens)
- π Improved statistics## Hello world & usage
### Docker Compose example with traefik
```sh
onlogs:
image: devforth/onlogs
restart: always
environment:
- ADMIN_USERNAME=admin
- ADMIN_PASSWORD=
- PORT=8798
# - ONLOGS_PATH_PREFIX=/onlogs if want to use with path prefixlabels:
- "traefik.enable=true"
- "traefik.http.routers.onlogs.rule=Host(``)" # if using on subdomain, e.g. https://onlogs.yourdomain.com
# - traefik.http.routers.onlogs.rule=PathPrefix(`/onlogs`) # if want to use with a path prefix, e.g. https://yourdomain.com/onlogs
- "traefik.http.services.onlogs.loadbalancer.server.port=8798"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/containers:/var/lib/docker/containers # if you want to delete duplicating logs from docker
- /etc/hostname:/etc/hostname
- onlogs-volume:/leveldbvolumes:
onlogs-volume:
```### Docker Run example with traefik
```sh
docker run --restart always -e ADMIN_USERNAME=admin -e PASSWORD= -e PORT=8798 \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /var/lib/docker/containers:/var/lib/docker/containers \
-v /etc/hostname:/etc/hostname \
-v onlogs-volume:/leveldb \
--label traefik.enable=true \
--label traefik.http.routers.onlogs.rule=Host\(\`\`\) \
--label traefik.http.services.onlogs.loadbalancer.server.port=8798 devforth/onlogs
```Once done, just go to and login as "admin" with .
## Available Environment Options:
| Environment Variable | Description | Defaults | Required |
|----------------------------|---------------------------------|--------|-----------------|
| ADMIN_USERNAME | Username for initial user | `admin` | if `AGENT=false`
| ADMIN_PASSWORD | Password for initial user | | if `AGENT=false`
| PORT | Port to listen on | `2874` | if `AGENT=false`
| JWT_SECRET | Secret for JWT tokens for users | Generates randomly | -
| ONLOGS_PATH_PREFIX | Base path if you using OnLogs not on subdomain | | only if using on path prefix
| AGENT | Toggles agent mode. If enabled, there will be no web interface available, and all logs will be sent and stored on HOST | `false` | -
| HOST | Url to OnLogs host from protocol to domain name. | | if `AGENT=true`
| ONLOGS_TOKEN | Token that will use an agent to authorize and connect to HOST | Generates with OnLogs interface | if `AGENT=true`