Steam screenshot hosting server.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
banners
cmd
static
templates
.gitignore
.travis.yml
LICENSE.txt
README.md
gamelist.go
handlers.go
image.go
releases.pl
server.go
settings_example.json
templates.go

README.md

Steam Screenshot Server

Build Status

A simple little server to host screenshots taken from steam games.

Configuration

There's only two things that need to be set. First is the directory that has all the screenshots, and the second is the address to listen on.

{
    "Address": ":8080",
    "AppidOverrides": [
        {
            "id": "231410",
            "name": "Kerbal Space Program Demo"
        }, {
            "id": "33440",
            "name": "Driver San Francisco"
        }
    ],
    "RemoteDirectory": "C:/path/to/steam/remote/folder",
    "RefreshInterval": 10
}

The Address setting is simply the address to listen on. For example, if you only want to allow local connections on port 8080 set this to 127.0.0.1:8080.

AppidOverrides is a list of id's and names to override a game's name.

The RemoteDirectory setting is the location of the screenshots. The above path is a an example of where it will be on a 64-bit Windows installation, replacing <user directory> with the appropriate numbered directory.

RefreshInterval is the interval at which the RemoteDirectory will be scanned for changes, in minutes. The lowest valid value is one minute. Anything lower will be reset to one minute.

Notes

  • No image processing is done. All the thumbnails are generated by steam and stored along side the screenshots in a subdirectory.
  • Game names are matched to their appropriate appid using the Steam store API. The appid's are cached locally.
  • Game grid icons are also retrieved from steam's servers and cached locally. Non-Steam games will use a default "unknown" image.

Remote Hosting

What you'll need

  • steam-screenshots executable
  • Syncthing
  • tmux or GNU Screen

How do

  1. Set up Syncthing on both the server and your machine that's got the screenshots. See here for a Getting Started guide.
  2. Sync your steam folder between your local machine and your server. Find your steam screenshot folder by right clicking a game in steam that you have taken screenshots for and selecting "View Screenshots".
  3. Grab a release of steam-screenshots and put it in a folder (like ~/steam/)
  4. cd to that folder and start tmux or screen (whichever you installed).
  5. Copy settings_example.json to settings.json and verify the settings. Enter the synced "remote" folder's path into settings.json (from step 2).
  6. Run ./steam-screenshots
  7. Detach the tmux or screen session (Ctrl-b, d for tmux, Ctrl-a d for screen)

TODO

  • Daemon scripts (SysV, Systemd, Windows service)
  • Configuration examples for running behind Nginx/Apache

License

Steam-screenshots is licensed under the MIT license. See LICENSE.txt for the full text.

PhotoSwipe is also licensed under the MIT license. PhotoSwipe can be found here.