Getting Started
Prerequisites
- Node.js 20+
- npm
- Docker and Docker Compose (for production deployment)
Installation
1. Clone the repository
bash
git clone https://codeberg.org/thelinuxcast/Homepage.git
cd Homepage2. Install dependencies
bash
# Root dependencies
npm install
# Client dependencies
cd client && npm install && cd ..
# Server dependencies
cd server && npm install && cd ..3. Configure environment
bash
cp .env.example .envEdit .env with your settings. At minimum, set PORT and NODE_ENV. See the Configuration page for all available options.
4. Start the development server
bash
npm run devThis starts:
- Client at
http://localhost:3000(Vite dev server with HMR) - Server at
http://localhost:3001(Express API)
The client proxies API requests to the server automatically.
Project structure
homepage/
├── client/ # React + Vite frontend
│ └── src/
│ ├── components/widgets/ # One file per widget
│ ├── store/useStore.ts # Zustand global state
│ ├── services/api.ts # API client
│ └── types/index.ts # Shared TypeScript types
├── server/ # Express backend
│ └── src/
│ ├── routes/api.routes.ts # All API endpoints
│ ├── services/ # Per-integration service modules
│ └── database.ts # SQLite setup & migrations
├── data/ # SQLite database (created on first run)
│ └── homepage.db
└── docs/ # This documentationFirst run
On the first run with no database, the app initialises all widgets with their default configurations. You will see a full grid of widgets, most of which will show a "not configured" state until you add API keys via Settings → Widgets.
To open Settings, click the gear icon in the header or press ?.