{"id":25483519,"url":"https://github.com/eurohlam/archery-logbook","last_synced_at":"2026-03-04T08:32:01.742Z","repository":{"id":75606247,"uuid":"604358325","full_name":"eurohlam/archery-logbook","owner":"eurohlam","description":"REST API for management of archery stuff such as: archers, bows and rounds","archived":false,"fork":false,"pushed_at":"2025-11-25T03:05:27.000Z","size":39028,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-28T12:57:38.341Z","etag":null,"topics":["docker-compose","java","springboot"],"latest_commit_sha":null,"homepage":"https://roundkick.nz","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eurohlam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-02-20T22:21:19.000Z","updated_at":"2025-05-27T12:12:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"bd7294f0-805d-4f55-8ad6-b274ae2ec43a","html_url":"https://github.com/eurohlam/archery-logbook","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/eurohlam/archery-logbook","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eurohlam%2Farchery-logbook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eurohlam%2Farchery-logbook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eurohlam%2Farchery-logbook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eurohlam%2Farchery-logbook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eurohlam","download_url":"https://codeload.github.com/eurohlam/archery-logbook/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eurohlam%2Farchery-logbook/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30076865,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T08:01:56.766Z","status":"ssl_error","status_checked_at":"2026-03-04T08:00:42.919Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker-compose","java","springboot"],"created_at":"2025-02-18T17:36:37.727Z","updated_at":"2026-03-04T08:32:01.138Z","avatar_url":"https://github.com/eurohlam.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"archery-logbook\n=================================\n\n## Overview\n\nThis is a spring-boot based REST API that helps to build a back-end for [Archer's Log Book](https://roundkick.nz/) project\n\n## Project\n\nThis API is a part of a free project [Archer's Log Book](https://roundkick.nz/).  \nArcher's Log Book helps archers to manage their rounds, bows and overall progress.\n\n## How to build\n\n    mvn clean install\n\n## How to run\n\nThe API is designed to work with MySQL/MariaDB as a database. In local environment it can be run as docker containers.\n\n- Build the app using `mvn clean install`\n- Copy archery-logbook.jar file from `target` into `docker` folder\n- Navigate into `docker` folder and run `docker-compose up`. It will build and run two containers: mariadb and archer-logbook\n- Open MariaDB admin console in browser: https://localhost:8080 and login with credentials: robin/hood\n- Run in admin console the script `src/main/resources/create_tables.sql` to create database structure and testing data\n- API endpoint is available as https://localhost:7878 \n\n## Run via Docker\n\n    sudo docker run \\\n        --name archery-logbook \\\n        --add-host host.docker.internal:host-gateway \\\n        --env SERVER_PORT=7878 \\\n        --env SERVER_SSL_KEYSTORE=classpath:archery-logbook-keystore.jks \\\n        --env SERVER_SSL_KEYSTORE_PASSWORD=changeit \\\n        --env SERVER_SSL_KEY_ALIAS=archery-logbook \\\n        --env SERVER_SSL_KEY_PASSWORD=changeit \\\n        --env DB_URL=jdbc:mysql://host.docker.internal:3306/archery \\\n        --env DB_USER=robin \\\n        --env DB_PWD=hood \\\n        -p 7878:7878 \\\n        --detach \\\n        eurohlam/archery-logbook:1.0.7\n\n## Security\n\n### TLS\nTLS is enabled for API-server. It means connection can be established only via HTTPS protocol. By default, the server uses\nself-signed certificate that comes with a docker image. It may be sufficient for testing purposes, but it must be overridden for\na production system. It can be achieved by setting env variables \n`SERVER_SSL_KEYSTORE, SERVER_SSL_KEYSTORE_PASSWORD, SERVER_SSL_KEY_ALIAS, SERVER_SSL_KEY_PASSWORD` for a docker container.\n\n### Authentication\nThe API uses HMAC (Hash-Based Message Authentication Codes) authentication. Client must pass 4 mandatory HTTP headers for every API-call:\n- key - unique key of client provided by API-owner. API-owner provides unique combination key/secret for every API-client\n- nonce - unique string generated by client for every API-call\n- timestamp - timestamp for API-call\n- signature - base64 encoded string of HMAC encrypted signature with SHA-256 algorithm. Signature before encryption is made up as\na concatenation of `path + key + nonce + timestamp`\n\n\n        //Example of HMAC signature for PHP\n        // Build the signature string from the parameters.\n        $signatureString = $path . $accessKey . $nonce . $timestamp;\n        // Create the HMAC SHA-256 Hash from the signature string.\n        $signature = base64_encode(hash_hmac('sha256', $signatureString, $secret, true));\n\n## API\n\nAPI specification is available in OpenAPI format in the file `archery-logbook-api.yaml`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feurohlam%2Farchery-logbook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feurohlam%2Farchery-logbook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feurohlam%2Farchery-logbook/lists"}