homeDash is an open-source, customizable home dashboard for your browser. It’s designed to be your personal start page, providing quick access to bookmarks, widgets (like weather, system info, and more), and admin features for advanced users.
- User Authentication: Secure login system with admin/user roles.
- Bookmarks Bar: Add, remove, and organize your favorite links.
- Widgets: Modular widget system (weather, system info, clock, etc.).
- Admin Panel: Admins can manage users and configure which widgets are available.
- Responsive Design: Works great on desktop and mobile.
- Server Storage: User and widget settings are stored on the server.
-
Clone the repository:
git clone https://github.com/coneheadlarry/homeDash.git cd homeDash/home-page -
Install dependencies:
cd frontend npm install -
Configure environment variables:
- Copy
.env.exampleto.envin bothbackendandfrontendfolders and adjust as needed.
- Copy
-
Start the backend:
cd backend npm start -
Start the frontend:
cd ../frontend npm run dev
project already has nodemon and conconancy to set up front and back. Alternate approach is just running npm run dev in home-page
- Open your browser:
Visit http://localhost:3000
- Useage:
To log in you must user admin admin123. Admin account can be created using this or any other admin account. Admin accounts can aslo create user accountns to the admin pannel.
homeDash/
backend/ # Express.js backend (auth, widgets, bookmarks, etc.)
frontend/ # Next.js frontend (UI, widgets, dashboard)
Contributions are welcome! Please open issues and pull requests for features, bug fixes, or documentation improvements.
- Fork the repo
- Create your feature branch (
git checkout -b feature/your-feature) - Commit your changes (
git commit -am 'Add new feature') - Push to the branch (
git push origin feature/your-feature) - Open a pull request
- UI panel to add new widgets without needing to edit code.
- More widgets (calendar, news, etc.).
- Drag and drop for reordering UI.
- Next.js
- Express.js
- Open-Meteo for weather data
homeDash — Your open-source, personal dashboard.
Creating Widgets
-
The first step is to create a react component for the UI.
-
Add the new widget/react component to the index.ts file in side ./frontend/src/app/widget/index.ts
-
Add the component to the json file in ./backend/ widgets.json