journeyover/asfclaim

By journeyover

Updated 3 days ago

🎮 Claim free steam games using ASF

Image
0

10K+

journeyover/asfclaim repository overview

ASFclaim

DockerHub Repository | Forked from C4illin/ASFclaim | Credits to @Mega349 for the original discord integration code.

ASFclaim is a tool designed to automatically claim new free packages on Steam when available, working in conjunction with ArchiSteamFarm (ASF) with IPC enabled.


How It Works
  1. GitHub Gist Integration: The tool retrieves a list of free Steam packages from a specified GitHub Gist (set by the GIST_ID environment variable).
    • To avoid GitHub API rate limits, you can optionally provide a GITHUB_TOKEN environment variable with a GitHub Personal Access Token with the gist scope.
  2. Processed Licenses: It keeps track of which codes have already been processed to avoid claiming the same package multiple times.
  3. Claiming Process: The tool claims free Steam packages by sending commands to ASF (ArchiSteamFarm).
  4. Interval-based Processing: The tool processes up to 40 codes per interval (as defined by ASF_CLAIM_INTERVAL, in hours). This ensures that the tool can claim available packages at a steady pace without hitting the Steam API limit.

Important: On first use, the tool will start processing from the bottom of the Gist list and claim up to 40 codes per interval (as defined by ASF_CLAIM_INTERVAL). This allows the tool to prioritize newly added packages, ensuring that recent additions are processed as soon as possible, even if the tool hasn't yet gone through the entire list. This approach helps prevent delays in claiming new packages and avoids processing the same codes multiple times, especially since scanning the entire list could take a couple of days to finish before it starts processing only newly added packages.


Optional: Discord Webhook Integration

Use the optional webhook integration to receive claim notifications on Discord.

Notification Types
Successfully Claimed Game

Success

Claimed Package Containing a DLC (with or without status visibility)

DLC Status DLC No Status

Claimed Game Package with Multiple Results and Visible Botnames

Multiple Results

When WEBHOOK_SHOWACCOUNTSTATUS is set to false, bot names and statuses remain hidden—ideal for public channels.


Installation

Baremetal Prerequisites
  1. Enable IPC in ASF (add password to .env if not empty).
  2. Install Node.js (v18 or later).
Manual Installation
# Clone the repository
git clone https://github.com/JourneyDocker/ASFclaim.git

# Navigate to directory
cd ASFclaim

# Install dependencies
npm install

# Start the application
node .
Docker Installation

You can use pre-built Docker images to run ASFclaim:

Pull the Docker Image:

You can choose from two Docker image repositories:

  • From Docker Hub:

    journeyover/asfclaim:latest
    
  • From GitHub Container Registry:

    ghcr.io/journeydocker/asfclaim:latest
    
Docker Image Tags

The ASFclaim Docker image is available in three primary tag formats, each suited to different use cases:

  • main (Continuous Development)

    • Description: The main tag is automatically updated to reflect the latest commit on the main branch in GitHub.

    • Usage Consideration: This tag is not recommended for production use, as it changes frequently and may include untested or unstable updates. Use main only if you're contributing to development or need access to the latest features and fixes.

    • Frequency: Updated with each new commit to the main branch, making this a rapidly evolving image.

    Note: Pulling the main tag may introduce breaking changes or instability, as it represents ongoing development work.

  • latest (Latest Stable Release)

    • Description: This tag points to the most recent stable release of ASFclaim. Unlike main, the latest tag is only updated with stable, fully-tested versions.
    • Usage Recommendation: Use the latest tag if you want the most current stable build without specifying a particular version. Ideal for production environments where stability is critical.
  • A.B.C.D (Versioned Release)

    • Description: Versioned tags, such as A.B.C.D, are frozen at a specific release version and will not receive updates after publication.
    • Usage Recommendation: Use versioned tags when you need consistency and want to avoid updates that might alter functionality. These tags are ideal for production environments requiring fixed versions.
Quick Start with Docker
docker run -d \
  --name asfclaim \
  -e TZ=America/Chicago \
  -e ASF_PROTOCOL=http \
  -e ASF_HOST=localhost \
  -e ASF_PORT=1242 \
  -e ASF_COMMAND_PREFIX="!" \
  -e ASF_BOTS=asf \
  -e ASF_CLAIM_INTERVAL=3 \
  -e WEBHOOK_URL=none \
  -e WEBHOOK_ENABLEDTYPES="error;warn;success" \
  -e WEBHOOK_SHOWACCOUNTSTATUS=true \
  -v ./storage:/app/storage/ \
  journeyover/asfclaim:latest
Docker Compose

Create a docker-compose.yml:

services:
    asfclaim:
        image: journeyover/asfclaim:latest
        environment:
            - TZ=America/Chicago
            - ASF_PROTOCOL=http
            - ASF_HOST=localhost
            - ASF_PORT=1242
            - ASF_COMMAND_PREFIX="!"
            - ASF_BOTS=asf
            - ASF_CLAIM_INTERVAL=3
            - WEBHOOK_URL=none  # Replace with your Discord Webhook URL
            - WEBHOOK_ENABLEDTYPES=error;warn;success  # 'info' might be too verbose
            - WEBHOOK_SHOWACCOUNTSTATUS=true  # Set to 'false' to hide bot names in Discord
        volumes:
            - ./storage:/app/storage/

Environment Variables

ENVDescriptionInfoDefault ValueRequired
TZYour timezoneTimezone identifier (e.g., Europe/Amsterdam)America/ChicagoNo
ASF_PROTOCOLASF IPC Transfer protocolOptions: http or httpshttpNo
ASF_HOSTASF IPC Hostname or IPHostname or IP addresslocalhostNo
ASF_PORTASF IPC PortPort number for IPC1242No
ASF_PASSASF IPC PasswordPlaintext password for ASF No
ASF_COMMAND_PREFIXCommand prefix for ASFPrefix used before commands!No
ASF_BOTSList of ASF bot namesComma-separated bot namesasfNo
ASF_CLAIM_INTERVALHours to wait for executionInterval in hours between checks3No
GIST_IDGist ID containing Steam codesGitHub Gist ID for fetching codese8c5cf365d816f2640242bf01d8d3675No
GITHUB_TOKENGitHub Personal Access TokenToken for authenticated GitHub API requests to avoid rate limits No
WEBHOOK_URLDiscord Webhook URLURL for Discord webhook or none to disablenoneNo
WEBHOOK_ENABLEDTYPESDisplayed notification types in Discord chatSemicolon-separated types (e.g., error;warn;success)error;warn;successNo
WEBHOOK_SHOWACCOUNTSTATUSShow result from ASFOptions: true or falsetrueNo

External Resources

Tag summary

Content type

Image

Digest

sha256:e169fd0d6

Size

44.8 MB

Last updated

3 days ago

Requires Docker Desktop 4.37.1 or later.