{"id":15394251,"url":"https://github.com/xyproto/teaftp","last_synced_at":"2025-04-15T23:53:31.557Z","repository":{"id":57537493,"uuid":"152969020","full_name":"xyproto/teaftp","owner":"xyproto","description":":tea: Simple, read-only TFTP server","archived":false,"fork":false,"pushed_at":"2024-04-25T11:38:59.000Z","size":4751,"stargazers_count":17,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-29T03:04:14.543Z","etag":null,"topics":["server","tftp"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xyproto.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}},"created_at":"2018-10-14T11:59:05.000Z","updated_at":"2025-03-20T22:03:11.000Z","dependencies_parsed_at":"2024-04-25T12:32:05.174Z","dependency_job_id":"e64a33bc-a83a-4bf1-bda0-a9e860932a46","html_url":"https://github.com/xyproto/teaftp","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Fteaftp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Fteaftp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Fteaftp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Fteaftp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xyproto","download_url":"https://codeload.github.com/xyproto/teaftp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249173061,"owners_count":21224481,"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":["server","tftp"],"created_at":"2024-10-01T15:22:47.516Z","updated_at":"2025-04-15T23:53:31.539Z","avatar_url":"https://github.com/xyproto.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"img/teaftp.svg\" width=\"128\"\u003e\n\n# TeaFTP\n\n[![Build](https://github.com/xyproto/teaftp/actions/workflows/build.yml/badge.svg)](https://github.com/xyproto/teaftp/actions/workflows/build.yml) [![Go Report Card](https://goreportcard.com/badge/github.com/xyproto/teaftp)](https://goreportcard.com/report/github.com/xyproto/teaftp) [![License](https://img.shields.io/badge/license-BSD-green.svg?style=flat)](https://raw.githubusercontent.com/xyproto/teaftp/main/LICENSE)\n\nSimple, read-only TFTP server.\n\n### Features and Limitations\n\n* Suitable for dealing with hardware devices that read files over TFTP at boot (PXE).\n* Security is provided by providing a list of whitelisted prefixes, suffixes and/or running the server from within a Docker container.\n* If not whitelisted filename prefixes or suffixes are provided, the server may share ANY file on the system, but not write to anything.\n  * Consider using the provided Docker container as a method to serve only a select group of files.\n  * Alternatively, utilize the list of allowed prefixes or suffixes for added security.\n* Every access is logged to stdout.\n\n### Requirements\n\n    Go 1.17 or later\n\n### Installation with Go 1.17 or Later\n\n    go install github.com/xyproto/teaftp@latest\n\n### Running\n\n#### Directly\n\nNavigate to the directory where you intend to share files:\n\nWith sudo:\n\n    sudo ./teaftp\n\nOn Linux, you can `teaftp` it to `/usr/bin` and grant additional capabilities using `setcap`:\n\n    sudo install -Dm755 teaftp /usr/bin/teaftp\n    sudo setcap cap_net_bind_service=+ep /usr/bin/teaftp\n\nStarting the server:\n\n    teaftp\n\n#### Docker\n\nTo build the Docker container and copy the contents of the `static` directory to `/srv/tftp` inside the container:\n\n    docker build . -t teaftp\n\nTo run TeaFTP with Docker:\n\n    docker run --network=host -t teaftp\n\nTo run TeaFTP with Docker and serve on port 9000 instead of port 69:\n\n    docker run -ePORT=9000 --network=host -t teaftp\n\n#### Allowed Suffixes\n\nYou can pass allowed filename suffixes as arguments to TeaFTP. When no arguments are given, there's no restriction on the file suffixes.\n\nExample:\n\n    sudo ./teaftp \".txt\"\n\nThis configuration will only serve filenames that end with `.txt`.\n\n### Dependencies\n\n* [pin/tftp](https://github.com/pin/tftp)\n* [sirupsen/logrus](https://github.com/sirupsen/logrus)\n* [urfave/cli](https://github.com/urfave/cli)\n\n### General information\n\n* Version: 1.3.1\n* License: BSD-3\n* Author: Alexander F. Rødseth \u0026lt;xyproto@archlinux.org\u0026gt;\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxyproto%2Fteaftp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxyproto%2Fteaftp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxyproto%2Fteaftp/lists"}