Skip to content

rtuszik/starwarden

Folders and files

NameName
Last commit message
Last commit date

Latest commit

906d80c · Jan 27, 2025

History

61 Commits
Sep 19, 2024
Sep 17, 2024
Jan 22, 2025
Sep 19, 2024
Jan 22, 2025
Sep 18, 2024
Jan 22, 2025
Sep 19, 2024
Sep 19, 2024
Nov 25, 2024
Jan 22, 2025

Repository files navigation

Docker Pulls GitHub Actions Workflow Status GitHub Actions Workflow Status

StarWarden

StarWarden allows you to export GitHub stars to Linkwarden.

screenshot

Features

  • Export GitHub stars to Linkwarden
  • Export to existing collection or create new colletion
  • Keep Linkwarden collection up-to-date with your GitHub stars using the docker image.

Setup

  1. Clone the repository

  2. Install requirements:

    pip install -r requirements.txt
  3. Create a .env file with:

    GITHUB_TOKEN=your_github_token
    GITHUB_USERNAME=your_github_username
    LINKWARDEN_URL=your_linkwarden_instance_url
    LINKWARDEN_TOKEN=your_linkwarden_api_token
    OPT_TAG=true
    OPT_TAG_GITHUB=true
    OPT_TAG_GITHUBSTARS=true
    OPT_TAG_LANGUAGE=false
    OPT_TAG_USERNAME=false

Usage

Run:

python starwarden.py

To directly update an existing collection without an interactive menu, run:

python starwarden.py -id YOUR_COLLECTION_ID

Environment Variables

Name Default Description
GITHUB_TOKEN GitHub API token
GITHUB_USERNAME GitHub username
LINKWARDEN_URL Linkwarden URL https://your-linkwarden-instance.com
LINKWARDEN_TOKEN Linkwarden API token
COLLECTION_ID Linkwarden Collection ID to update (Number) /collections/499
CRON_SCHEDULE 0 6 * * * Cron Schedule (default is daily at 6am)
(True/False)
OPT_TAG true Enable/Disable all Tagging
OPT_TAG_GITHUB true Tag Link with "GitHub"
OPT_TAG_GITHUBSTARS true Tag Link with "GitHub Stars"
OPT_TAG_LANGUAGE false Tag Link with Language of repo (e.g. Python or JavaScript)
OPT_TAG_USERNAME false Tag GitHub username
-
OPT_TAG_CUSTOM Add custom tags, separated by commas (e.g. tag1,tag2)

Unsupervised Updates

For automated, unsupervised updates, you can use Docker with the provided docker-compose.yml file.

  1. Make sure you have Docker and Docker Compose installed on your system.

  2. Create a .env file in the project root with the following variables:

    GITHUB_TOKEN=your_github_token
    GITHUB_USERNAME=your_github_username
    LINKWARDEN_URL=your_linkwarden_instance_url
    LINKWARDEN_TOKEN=your_linkwarden_api_token
    COLLECTION_ID=your_linkwarden_collection_id
    CRON_SCHEDULE=0 0 * * *  # Run daily at midnight, adjust as needed
    OPT_TAG=true
    OPT_TAG_GITHUB=true
    OPT_TAG_GITHUBSTARS=true
    OPT_TAG_LANGUAGE=false
    OPT_TAG_USERNAME=false
  3. Use the following docker-compose.yml file:

    version: "3"
    services:
    starwarden:
      image: rtuszik/starwarden:latest
      env_file: .env
      volumes:
        - ./starwarden.log:/app/starwarden.log
  4. Run the following command to start the Docker container:

    docker compose up -d

The container will now automatically run StarWarden on the specified schedule without any manual intervention.

To manually trigger an update, you can run:

docker compose exec starwarden python /app/starwarden.py -id $COLLECTION_ID

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.