{"id":13797942,"url":"https://github.com/dbrgn/flugbuech","last_synced_at":"2026-03-06T18:04:00.978Z","repository":{"id":38315625,"uuid":"146520750","full_name":"dbrgn/flugbuech","owner":"dbrgn","description":"Web based flight log for paragliding pilots.","archived":false,"fork":false,"pushed_at":"2024-12-27T17:34:55.000Z","size":11467,"stargazers_count":29,"open_issues_count":35,"forks_count":1,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-01-12T10:42:15.302Z","etag":null,"topics":["flightlog","gleitschirm","paragliding"],"latest_commit_sha":null,"homepage":"https://flugbuech.bargen.dev/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dbrgn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2018-08-29T00:05:31.000Z","updated_at":"2024-12-27T17:33:58.000Z","dependencies_parsed_at":"2024-01-21T23:42:06.343Z","dependency_job_id":"677f7c30-6af7-43a7-b3ba-0a7dee99698b","html_url":"https://github.com/dbrgn/flugbuech","commit_stats":{"total_commits":393,"total_committers":3,"mean_commits":131.0,"dds":0.03053435114503822,"last_synced_commit":"3d1ee0f373a411e7c568a2d0f845318abe529e91"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbrgn%2Fflugbuech","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbrgn%2Fflugbuech/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbrgn%2Fflugbuech/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbrgn%2Fflugbuech/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dbrgn","download_url":"https://codeload.github.com/dbrgn/flugbuech/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234537863,"owners_count":18848955,"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":["flightlog","gleitschirm","paragliding"],"created_at":"2024-08-04T00:00:36.797Z","updated_at":"2026-03-06T18:04:00.962Z","avatar_url":"https://github.com/dbrgn.png","language":"Rust","funding_links":[],"categories":["Logbook"],"sub_categories":["Other"],"readme":"# Flugbuech\n\n[![Build status: Backend](https://github.com/dbrgn/flugbuech/actions/workflows/backend.yml/badge.svg)](https://github.com/dbrgn/flugbuech/actions/workflows/backend.yml)\n[![Build status: Frontend](https://github.com/dbrgn/flugbuech/actions/workflows/frontend.yml/badge.svg)](https://github.com/dbrgn/flugbuech/actions/workflows/frontend.yml)\n[![Docker image](https://img.shields.io/badge/docker%20image-dbrgn%2Fflugbuech-blue)](https://hub.docker.com/r/dbrgn/flugbuech/)\n\nPersonal flight log for paragliding pilots. Written with\n[Rust](https://www.rust-lang.org/) / [Rocket](https://rocket.rs/) in\nthe backend and Bulma CSS / SvelteKit in the frontend.\n\n![Screenshot](screenshot.png)\n\nThis software is mostly aimed at pilots that track their flights using a GPS\ntracker which generates IGC files, but it can also be used without an IGC file\nfor every flight.\n\nThe IGC file is stored together with the flight data. Every flight can be\nlinked to an [XContest](https://www.xcontest.org/) upload.\n\nA free hosted version of the flight book can be found at\n[flugbue.ch](https://flugbue.ch/). Registration is open!\n\nIf you have any question, you can contact me at\n[flugbuech@bargen.dev](mailto:flugbuech@bargen.dev).\n\n\n## Status\n\n### Features\n\n- Add flights manually to the database\n- Add flights through IGC file upload (all relevant flight data like launch\n  time/location, landing time/location, duration, distance, etc can be\n  extracted from that file)\n- Add/edit/delete launch/landing locations\n- Map of all locations\n- Add/edit/delete gliders/wings\n- Stats about the past flights\n- Import flights from CSV\n- Translation support: English and German\n\nSee \u003chttps://flugbue.ch/screenshots/\u003e for a good overview.\n\n### What's not yet implemented\n\n- [ ] Password recovery\n- [ ] Showing flight track on a map\n- [ ] Map with all your flights\n- [ ] Make it easier to self-host\n- [ ] Import launch / landing locations from a public database\n- [ ] Direct upload to XContest\n\n\n## Setup\n\nRequirements:\n\n- Rust stable (see `rust-toolchain` file)\n- PostgreSQL + PostGIS\n- For building the frontend components: nodejs / npm\n- For production environments: A reverse proxy like Nginx\n\nInstall `diesel_cli`:\n\n    cargo install -f diesel_cli --no-default-features --features postgres\n\nStart PostGIS database:\n\n    docker run -d --name flugbuech-pg \\\n      -e POSTGRES_DB=flugbuech \\\n      -e POSTGRES_USER=flugbuech \\\n      -e POSTGRES_PASSWORD=flugbuech-dev-password \\\n      -p 127.0.0.1:5432:5432 \\\n      docker.io/postgis/postgis:15-3.4-alpine\n\nPrepare database and run migrations:\n\n    diesel setup\n\n(Note: You can also apply migrations by starting with the `--migrate` flag)\n\nInstall frontend dependencies:\n\n    (cd frontend \u0026\u0026 npm install)\n\nYou're set up! To start the development API server:\n\n    cargo run\n\nAnd to run the development frontend server in a second terminal window:\n\n    cd frontend \u0026\u0026 npm run dev\n\nThen go to \u003chttp://localhost:5173/\u003e to view the local application.\n\n\n## Creating test users\n\nHead to \u003chttp://localhost:5173/auth/registration\u003e and sign up regularly.\n\n\n## Testing\n\nFirst, set up a test database:\n\n    docker exec flugbuech-pg createdb -U flugbuech flugbuech_test\n\nRun backend tests:\n\n    cargo test\n\nTo run frontend tests:\n\n    cd frontend\n    npm run test\n\n\n## Resetting Password\n\nTo reset a password directly in the database:\n\n    UPDATE users\n    SET password = crypt('newpassword', gen_salt('bf', 10))\n    WHERE username = 'user';\n\n\n## Deployment\n\nIf you want to deploy this software using Docker, please take a look at the\nprovided `docker-compose.yml` file. It can serve as an example on how to host\nFlugbuech. The image is also available [on Docker\nHub](https://hub.docker.com/r/dbrgn/flugbuech/), images are re-built at least\nweekly.\n\n**IMPORTANT**: Make sure to change the `ROCKET_SECRET_KEY` variable when\nconfiguring your deployment!\n\n\n## License\n\nLicensed under the AGPL version 3 or later. See `LICENSE.md` file.\n\n    Copyright (C) 2019–2025 Danilo Bargen\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU Affero General Public License as\n    published by the Free Software Foundation, either version 3 of the\n    License, or (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU Affero General Public License for more details.\n\n    You should have received a copy of the GNU Affero General Public License\n    along with this program.  If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n\n## Credits\n\n- Background photo by [eberhard grossgasteiger on Unsplash](https://unsplash.com/photos/15KSFB1n0FU)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbrgn%2Fflugbuech","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdbrgn%2Fflugbuech","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbrgn%2Fflugbuech/lists"}