Overview
Discover what makes Servas powerful
Servas is a self‑hosted bookmark and link sharing platform built with Laravel 10 on the backend and Inertia.js coupled with Svelte for a modern, reactive frontend. The core idea is to provide developers with an extensible, lightweight solution that can be deployed in a single container or scaled across multiple services. The application exposes a REST‑like API through Laravel’s resource controllers, while the UI is driven by Svelte components that consume the same endpoints via Inertia.js. This tight coupling means developers can swap out the frontend stack (e.g., replace Svelte with Vue or React) without touching business logic, thanks to Inertia’s “server‑side rendering” abstraction.
Backend
Frontend
Database
Containerization
Overview
Servas is a self‑hosted bookmark and link sharing platform built with Laravel 10 on the backend and Inertia.js coupled with Svelte for a modern, reactive frontend. The core idea is to provide developers with an extensible, lightweight solution that can be deployed in a single container or scaled across multiple services. The application exposes a REST‑like API through Laravel’s resource controllers, while the UI is driven by Svelte components that consume the same endpoints via Inertia.js. This tight coupling means developers can swap out the frontend stack (e.g., replace Svelte with Vue or React) without touching business logic, thanks to Inertia’s “server‑side rendering” abstraction.
Technical Stack
- Backend: Laravel 10 (PHP 8.4), Eloquent ORM, Sanctum for API authentication, built‑in queues and event broadcasting.
- Frontend: Inertia.js acting as a bridge between Laravel routes and Svelte components; Tailwind CSS for utility‑first styling.
- Database: Supports SQLite (default), MySQL, and MariaDB. All migrations are idempotent and can be applied via
php artisan migrate. The data model includes users, bookmarks, tags, groups (with self‑referential nesting), and smart‑group definitions. - Containerization: Official Docker image (
beromir/servas) ships with a ready‑to‑rundocker-composefile. The image is built on top of an Alpine PHP base, keeping the footprint minimal (~200 MB). For production, the recommended stack uses SQLite for simplicity; MySQL/MariaDB are optional but supported via separate compose files.
Core Capabilities & APIs
- Bookmark CRUD: Create, read, update, delete bookmarks with URL validation and metadata extraction (title, favicon).
- Tagging & Grouping: Many‑to‑many relationships allow bookmarks to belong to multiple tags and groups. Groups can be nested arbitrarily, enabling hierarchical organization.
- Smart Groups: Declarative group rules that automatically include bookmarks based on tag membership; implemented as query scopes in Laravel.
- Import/Export: JSON and HTML bookmark file support, with endpoints for bulk upload/download.
- Two‑Factor Authentication: Laravel’s built‑in TOTP support, configurable via
.env. - Browser Extensions: A companion Chrome/Firefox extension pushes new bookmarks directly to the API via authenticated POST requests.
The API is documented in Swagger/OpenAPI format (generated automatically by a package), allowing developers to quickly generate client SDKs or integrate Servas into existing workflows.
Deployment & Infrastructure
Deploying Servas is as simple as pulling the Docker image and running docker compose up -d. The application requires only a writable storage directory for migrations, logs, and the SQLite file. For larger deployments, a dedicated MySQL/MariaDB container can be used; the docker-compose examples provide ready‑made configurations. Because the code is stateless aside from the database, horizontal scaling is straightforward: multiple containers can share a common MySQL instance and an Nginx reverse proxy handles load balancing. The Laravel cache and session drivers can be switched to Redis or Memcached for performance gains.
Integration & Extensibility
Servas exposes a clean RESTful API that can be consumed by any client. Developers can hook into events (e.g., BookmarkCreated, TagUpdated) to trigger side effects such as syncing with external services or updating a search index. The plugin architecture is minimal but extensible: adding a new Laravel service provider or an Inertia component only requires updating the composer.json and rebuilding assets. Webhooks are available for external systems to listen to bookmark changes, making it suitable as a backend for custom dashboards or mobile apps.
Developer Experience
The project follows Laravel conventions, so developers familiar with the framework will find routing, middleware, and model binding intuitive. The codebase is well‑structured with a clear separation of concerns: controllers, resources, and policies reside in dedicated directories. Documentation is concise but covers all essential aspects—installation, configuration, API usage, and extension points. The community is active on GitHub; issues and pull requests are handled promptly, ensuring that feature requests (e.g., additional authentication providers) can be integrated quickly.
Use Cases
- Personal Knowledge Management: A developer wants a self‑hosted, searchable bookmark collection that can be accessed from any device without relying on third‑party services.
- Team Collaboration: A small team uses Servas to curate shared resources, leveraging groups and tags for role‑based access control.
- Custom Mobile Apps: The API can be consumed by a native iOS/Android app, providing offline caching and push notifications for new bookmarks.
- Enterprise Integration: Companies can embed Servas into their intranet, using LDAP or OAuth for authentication and integrating with existing document management systems.
Advantages
- Full Control: Self‑hosting guarantees data privacy and compliance with internal policies.
- Modern Stack: Leveraging Laravel 10, Inertia.js, and Svelte delivers a fast developer experience with hot‑module reloading and type safety via PHP 8.4.
- Lightweight: The Docker image is small, and SQLite support eliminates the need for a separate database service in most scenarios.
- Extensible: The API, event system, and webhook support make it easy to extend Servas for custom workflows.
- Open Source & Free: No licensing costs or usage limits, unlike commercial bookmark managers.
In summary, Serv
Open SourceReady to get started?
Join the community and start self-hosting Servas today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
IFM - improved file manager
Web‑based, self‑hosted file manager
Simple Machines Forum
Open‑source, customizable community forum software
Stalwart Mail Server
Secure, scalable mail and collaboration platform
EspoCRM
Open‑source CRM for smart customer relationships
Wavelog
Self-hosted logbook for amateur radio enthusiasts
Gitea
Fast, lightweight self-hosted Git platform
