This is a simple, free and opensource EASA-style logbook application written in golang.
You can clone the repo and compile the binaries yourself, or just download the latest ones for your operating system from the releases.
Once you start the app it automatically creates an SQLite local DB and starts listening on port 4000 by default. So you can open it in your standard web browser at http://localhost:4000
You also can easily export all flight records into EASA style pdf format, print it, sign and use it as a usual paper logbook.
Update: There are few major updates for the docker files and image containers
debian:bookworm-slim
to alpine
, which reduced the container image size 3x - from 104MB to 37MBlinux/amd64
and linux/arm64
now./web-logbook
from the command
# old image
ENTRYPOINT ["./web-logbook", "-dsn", "/data/web-logbook.sql"]
ENTRYPOINT ["./web-logbook" ] CMD ["-dsn", "/data/web-logbook.sql"]
Total by Month
page when changing a year in Chrome and MS Edge browsers.The full changelog is here
web-logbook.exe
file. It will show you some warning about how unsafe it can be (need to solve it later), but just run it../web-logbook
Settings->Airports
page and click on the Update Airport DB
buttonCtrl+C
in the terminal window or just close it$ ./web-logbook -h
-cert string
certificate path (default "certs/localhost.pem")
-disable-authentication
Disable authentication (in case you forgot login credentials)
-dsn string
Data source name {sqlite: file path|mysql: user:password@protocol(address)/dbname?param=value} (default "web-logbook.sql")
-enable-https
Enable TLS/HTTPS
-engine string
Database engine {sqlite|mysql} (default "sqlite")
-env string
Environment {dev|prod} (default "prod")
-key string
private key path (default "certs/localhost-key.pem")
-port int
Server port (default 4000)
-url string
Server URL (default empty - the app will listen on all network interfaces)
-version
Prints current version
Since it's written in Golang, it can run on any system after compiling the sources. Currently, on the Release page, there are binaries available for Linux, MacOS, and Windows.
So in real life the logbook could look like
The app supports 3 sources:
If you enable the No ICAO codes filter
option, the app will ignore ICAO airport codes that contain numbers and dashes, which are not commonly used ICAO codes. By default, this option is unchecked, which makes the database slightly smaller and cleaner.
Check readme for dockerized app for more details.
Since the app is running on localhost
it's not possible to create a public certificate that would be valid by public CAs. As an option, you can create a self-signed certificate and add it to the root CA in your operating system. For that, you can use mkcert
tool.
web-logbook
directorycerts
mkcert -instal
- it will create a new local CAmkcert localhost
- it will generate a key(localhost-key.pem
) and a certificate(localhost.pem
)web-logbook --enable-https
You don't need to install a new local CA in you system, but in this case, browser will always show you a warning message, that certificate is self-signed and not trusted.
Also, you can always generate your own certificate and key and store it in the different directories in your operating system. For that use --key
and --cert
parameters to specify the exact location.
To store all data, you can use MySQL database. To get started, create a database and a user with access to it. On the first run, the application will create all necessary tables and views. If you want to migrate your data from SQLite to MySQL, you can use the export to CSV function first and then import from CSV.
The DSN format for MySQL connections
user:password@protocol(address)/dbname?param=value
For example,
./web-logbook -engine mysql -dsn "web-logbook-user:pwd@tcp(192.168.0.222)/web-logbook"
In case you'd like to add some other features to the logbook or you found a bug, please open an "issue" here https://github.com/vsimakhin/web-logbook/issues with a description. I cannot promise I'll implement it or fix it at a reasonable time but at least I can take a look.