Toolio is a lightweight web application built with Astro and Bun. It uses Vue for interactive components, Drizzle ORM for database access, and Tailwind CSS for styling. The goal is to provide a small collection of handy tools with a simple yet modern stack.
- Install dependencies:
bun install- Copy
.env.exampleto.envand adjust the values. - Run the database migrations:
bun run db:migrate- Start the development server:
bun devThe site will be available at http://localhost:4321 by default.
Toolio includes basic authentication powered by better-auth with support for:
- Email/password authentication
- Passkey authentication (WebAuthn)
You can create users with:
bun run scripts/add-user.ts <email> <password> [name]For passkey authentication in production, make sure to set the correct values for:
PASSKEY_RP_ID: Your domain (e.g.,toolio.example.com)PASSKEY_ORIGIN: Your full origin URL (e.g.,https://toolio.example.com)
A Dockerfile and deployment guide are provided for container-based deployments. See DEPLOYMENT.md for an example Docker Compose setup and additional commands.
Auto-migrations: When deployed with NODE_ENV=production, database migrations run automatically on startup. This ensures the database schema is always up-to-date. You can disable this behavior by setting DISABLE_AUTO_MIGRATIONS=true in your environment variables.