Skip to content

About

Tail log files in web browser

Topics

Resources

Security policy

Stars

98 stars

Watchers

6 watching

Forks

Latest commit

 

History

435 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

image logstation

Tails a set of log files and serves them up on a web server with syntax colors via regex.

Binaries available in releases. See usage below.

License Security Rating Quality Gate Status Build/Test

Goals:

  • Run on anything and everything
  • Support as many browsers as possible
  • Ease deployment and usage with a single executable with minimal configuration required
image

Developed with Go and React

Usage

  • Call logstation or logstation.exe
    • It will create an logstation.conf in your current directory if one doesn't exist and exit
    • Update logstation.conf as desired
    • Call logstation or logstation.exe again
  • Navigate to http://127.0.0.1:8884 to start tailing (refer to logstation.conf for listen IP and port)

You can also use -c your-logstation.conf argument to specify a config file

Take a look at an example logstation.conf here.

Containers

An official image is published to GitHub Container Registry on every tag push. It is built from Chainguard base images, runs as a non-root user, and is available for linux/amd64 and linux/arm64.

The image works with both docker and podman. The Containerfile is self-contained -- it builds the web frontend and the Go binary in one shot:

podman build -f Containerfile -t logstation:dev .

On first run, if no config file is present, logstation generates a default logstation.conf in /config and then starts the server. To run it with a directory of logs:

podman run -d --name logstation \
  -p 8884:8884 \
  -v /var/log:/logs:z \
  ghcr.io/jdrews/logstation:latest

Then navigate to http://127.0.0.1:8884.

To use your own config, bind-mount it with the :z SELinux flag so the container's non-root user can read it (this works with both docker and podman, including rootless podman). Point the logs list in your config at the mounted files, e.g. /logs/*.log:

podman run -d --name logstation \
  -p 8884:8884 \
  -v /var/log:/logs:z \
  -v ./logstation.conf:/config/logstation.conf:z \
  ghcr.io/jdrews/logstation:latest

Building

logstation uses goreleaser for all releases

Start by building the web frontend:

  • cd web; yarn build

To build all targets locally you can run the following in the root directory:

  • goreleaser build --snapshot --clean

If you want to build for a specific target you can set environment variables

  • In bash this would look like:
    GOOS=linux GOARCH=amd64 goreleaser build --snapshot --clean --single-target
  • In powershell this would look like:
    $env:GOOS="linux"; $env:GOARCH="amd64"; goreleaser build --snapshot --clean --single-target

Reference the releases and .goreleaser.yaml for all officially supported targets.

Releasing

  • Push a tag following semver
    • git tag -a 2.0.0-beta1 -m "2.0.0-beta1"
    • git push origin 2.0.0-beta1
  • Ensure you have an environment variable with GITHUB_TOKEN="YOUR_GH_TOKEN" and minimum of write:packages permissions
  • Release!
    • cd web; yarn build
    • cd ..; goreleaser release
  • Read the goreleaser quickstart for more details

Versions

Prior to 2.x, this app was built using Scala/Play/JS. At 2.x this app was rewritten in Go and React. If you're looking for the older versions reference the releases prior to 2.x.

About

Tail log files in web browser

Topics

Resources

Security policy

Stars

98 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages