{"id":16876266,"url":"https://github.com/coolcat467/scanner-server","last_synced_at":"2025-04-11T11:32:24.330Z","repository":{"id":56775068,"uuid":"524839217","full_name":"CoolCat467/Scanner-Server","owner":"CoolCat467","description":"Kind of like CUPS but it's for scanning, not printing. Preform a scan on your flatbed scanner from the web browser.","archived":false,"fork":false,"pushed_at":"2025-04-07T22:39:13.000Z","size":645,"stargazers_count":5,"open_issues_count":4,"forks_count":7,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T23:28:49.902Z","etag":null,"topics":["coolcat467","hacktoberfest","python3","sane-frontend","scanimage","scanner","server","webserver","website"],"latest_commit_sha":null,"homepage":"","language":"Python","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/CoolCat467.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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}},"created_at":"2022-08-15T03:05:14.000Z","updated_at":"2025-04-07T22:39:15.000Z","dependencies_parsed_at":"2024-01-01T02:24:53.709Z","dependency_job_id":"e10b05ed-f012-4483-81b5-caef16ac18c4","html_url":"https://github.com/CoolCat467/Scanner-Server","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoolCat467%2FScanner-Server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoolCat467%2FScanner-Server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoolCat467%2FScanner-Server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoolCat467%2FScanner-Server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CoolCat467","download_url":"https://codeload.github.com/CoolCat467/Scanner-Server/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248384072,"owners_count":21094669,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["coolcat467","hacktoberfest","python3","sane-frontend","scanimage","scanner","server","webserver","website"],"created_at":"2024-10-13T15:38:49.485Z","updated_at":"2025-04-11T11:32:24.321Z","avatar_url":"https://github.com/CoolCat467.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Scanner-Server\nKind of like CUPS but it's for scanning, not printing.\n\n[![Tests](https://github.com/CoolCat467/Scanner-Server/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/CoolCat467/Scanner-Server/actions/workflows/ci.yml)\n\u003c!-- BADGIE TIME --\u003e\n\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)\n[![code style: black](https://img.shields.io/badge/code_style-black-000000.svg)](https://github.com/psf/black)\n[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n\n\u003c!-- END BADGIE TIME --\u003e\n\n![thumbnail](./img/thumbnail.png)\n\nThis is basically a web interface for scanner devices through the SANE (Scanner Access Now Easy) interface.\n\nThis program is intended to be used alongside CUPS, but this should not be required.\n\nOn default, the web server is hosted on port `3004`.\nThis can be changed in the configuration file (more info below)\n\nYou will need `libsane-dev` to be able to install `python-sane`.\nUse APT or your system's equivalent to install.\n\n## Installation\n```console\nsudo apt-get install libsane-dev\npip install git+https://github.com/CoolCat467/Scanner-Server.git\n```\n\n## Run\nImportant: When you run this program, the configuration file will be saved in `$XDG_CONFIG_HOME/sane_scanner_webserver` (`~/.config` if $XDG_CONFIG_HOME not set) and the logs folder will be saved in\n`$XDG_DATA_HOME/sane_scanner_webserver` (`~/.local/share/` if $XDG_DATA_HOME not set)\nand the program will create these files if they do not exist.\n```console\nsanescansrv\n```\n\n## Usage\nGo to URL `http://\u003cIP_of_host\u003e:3004`\n\n\n## Configuration\nThe main configuration file is saved either in `$XDG_CONFIG_HOME/sane_scanner_webserver/config.toml` or\n`$HOME/.config/sane_scanner_webserver/config.toml`,\nwhere you can change things like what port(s)\nthe webserver is hosted on, hypercorn configuration, and enabling\nSSL support!\n\n\n## Enabling SSL Support\nIf you would like to enable SSL support on the local network, it's a bit\ntricky but it's doable, successfully tested in production, and completely free!\n1) Make sure your internet router is set to have the machine running\nthe webserver to have a static ip address. This does not and should not be\na publicly accessible ip address.\n2) Create a free account with [duckdns](https://www.duckdns.org/)\n3) Add a domain with a name of your choice and set the ip to the static ip\naddress of the machine running the webserver.\n4) Install certbot on the machine running the webserver.\n(https://certbot.eff.org/instructions)\nWhen it asks `software`, tell them `other`.\nFor my installation, I ended up [installing it with pip](https://pypi.org/project/certbot/).\n5) Install the [certbot duckdns plugin](https://github.com/infinityofspace/certbot_dns_duckdns) for certbot\n6) Either run certbot from duckdns plugin's README or run [/scripts/cert_create.sh](https://github.com/CoolCat467/Scanner-Server/blob/main/scripts/cert_create.sh) with your details.\n7) Setup autorenewal from [certbot wiki](https://eff-certbot.readthedocs.io/en/latest/using.html#setting-up-automated-renewal) or look at [/scripts/cert_renew.sh](https://github.com/CoolCat467/Scanner-Server/blob/main/scripts/cert_renew.sh)\n8) Uncomment SSL lines in the webserver configuration file (see section above) and edit as needed for your particular setup.\n\n\n### Links\n* Source Code - https://github.com/CoolCat467/Scanner-Server.git\n* Issues      - https://github.com/CoolCat467/Scanner-Server/issues\n\n### License\n-------\nCode and documentation are available according to the GNU General Public License v3.0 (see [LICENSE](https://github.com/CoolCat467/Scanner-Server/blob/HEAD/LICENSE)).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoolcat467%2Fscanner-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoolcat467%2Fscanner-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoolcat467%2Fscanner-server/lists"}