{"id":35319939,"url":"https://github.com/7591yj/fpga-server","last_synced_at":"2026-04-06T09:33:19.986Z","repository":{"id":323529766,"uuid":"1093364556","full_name":"7591yj/fpga-server","owner":"7591yj","description":"Simple web UI setup for controlling FPGA boards over the network through USB(Vivado Lab).","archived":false,"fork":false,"pushed_at":"2026-01-02T15:41:24.000Z","size":172,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-08T23:19:53.920Z","etag":null,"topics":["bulma","fedora-scripts","flask","python","sqlite","vivado"],"latest_commit_sha":null,"homepage":"https://fpga-server.7591yj.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/7591yj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-10T09:19:47.000Z","updated_at":"2026-01-02T15:41:27.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/7591yj/fpga-server","commit_stats":null,"previous_names":["7591yj/fpga-server"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/7591yj/fpga-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/7591yj%2Ffpga-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/7591yj%2Ffpga-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/7591yj%2Ffpga-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/7591yj%2Ffpga-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/7591yj","download_url":"https://codeload.github.com/7591yj/fpga-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/7591yj%2Ffpga-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31466629,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T08:36:52.050Z","status":"ssl_error","status_checked_at":"2026-04-06T08:36:51.267Z","response_time":112,"last_error":"SSL_read: 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":["bulma","fedora-scripts","flask","python","sqlite","vivado"],"created_at":"2025-12-30T21:06:07.195Z","updated_at":"2026-04-06T09:33:19.974Z","avatar_url":"https://github.com/7591yj.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fpga-server\n\nSimple web UI setup for controlling FPGA boards over the network through USB.\n\n## Introduction\n\n\u003e It is a MUST to use some kind of safety measures to protect the\n\u003e server from unauthorized access.\n\u003e Risks that may follow by using this server public are not considered.\n\n`fpga-server` is a mini server configuration designed to control FPGA boards\nvia USB.\nIt provides a web interface and an API to manage FPGA programming, job queues,\nand user authentication.\n\nThe server is only tested on Fedora 41/42 Server. Other OS/distros were not\ntested.\n\n## Installation\n\nTo set up `fpga-server`, follow these steps:\n\n1. **Clone the repository:**\n\n   ```bash\n   git clone https://github.com/your-repo/fpga-server.git\n   cd fpga-server\n   ```\n\n2. **Download Vivado Lab Edition installation file from [here](https://www.xilinx.com/support/download.html)**\n\n   \u003e You might need AMD account to download the file.\n\n   Place the file in the same directory - inside `fpga-server`.\n\n3. **Run the script:**\n\n   ```bash\n   sudo ./init.sh\n   ```\n\n   Running the script will install system dependencies, install python dependencies,\n   set up virtual environment, initialize the database, create symlinks,\n   and configure Supervisor(optional).\n\n   If you need to run part of the scripts manually, use other scripts provided.\n\n\u003e Please understand that we internally moved to use Cloudflare Zero Trust;\n\u003e Tailscale may not work as expected.\n\n```bash\n# Install system dependencies\n./install-dnf-deps.sh\n# Install Vivado Lab Edition\n./install-vivado-deps.sh\n# Install Python dependencies\n./install-pip-deps.sh\n# Initialize the database\n./opt/fpga_app/scripts/init_db.sh\n# Create symlinks\n./create-symlink.sh\n# Configure Supervisor\nsudo cp supervisord.conf /etc/supervisord.d/fpga-server.conf\nsudo systemctl enable supervisord\nsudo systemctl start supervisord\n# Set up Tailscale\n./setup-tailscale.sh\n```\n\n## Usage\n\n### Starting the server\n\nIt is highly recommended to use `supervisord` to start up the server,\nbut you can still manually start it:\n\n```bash\nsource opt/fpga_app/venv/bin/activate\npython opt/fpga_app/api/app.py\n```\n\n### Accessing the Web UI\n\nOnce the server is running, you can access the web interface in your browser,\nat `http://localhost:8000` (or the configured port).\n\n### API Endpoints\n\nThe API provides endpoints for:\n\n- User authentication (`/api/auth`)\n- FPGA programming (`/api/fpga`)\n- Job management (`/api/jobs`)\n\nRefer to `opt/fpga_app/api/README.md` for more details on API usage.\n\n### Creating User\n\nRegistering using the web UI is not supported.\nThe recommended way of creating user is using the python script:\n\n```bash\npython3 /opt/fpga_app/scripts/create_user.py\n```\n\nOr, you can insert into the user DB yourself, in `/opt/fpga_app/config/jobs.db`.\n\n### Managing Bit Files\n\n`.bit` files uploaded by the users are stored in `/opt/fpga_app/config/bitfiles`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F7591yj%2Ffpga-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F7591yj%2Ffpga-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F7591yj%2Ffpga-server/lists"}