mirror of
https://github.com/skidoodle/budgetable.git
synced 2025-02-15 03:39:14 +01:00
97 lines
2.8 KiB
Markdown
97 lines
2.8 KiB
Markdown
# Budgetable
|
|
|
|
A simple, web-based app to track items you want to buy later. It lets you easily add, update, and manage your items, with the ability to toggle between "Paid" and "Unpaid" statuses.
|
|
|
|
## Features
|
|
- Add, update, and delete items in your list.
|
|
- Toggle item statuses between "Paid" and "Unpaid."
|
|
- User-friendly interface with responsive design.
|
|
|
|
## Tech Stack
|
|
- **Framework**: [Next.js](https://nextjs.org/)
|
|
- **Styling**: [ShadCN UI](https://ui.shadcn.com/)
|
|
- **Database**: [PocketBase](https://pocketbase.io/)
|
|
- **Package Manager**: [pnpm](https://pnpm.io/)
|
|
- **Containerization**: [Docker](https://www.docker.com/)
|
|
|
|
## Getting Started
|
|
|
|
### Setting Environment Variables
|
|
Before running the app, set the following environment variables in a `.env.local` file:
|
|
- `NEXT_PUBLIC_POCKETBASE_URL`: The URL of your PocketBase server.
|
|
- `EMAIL`: The email address used to log in to the PocketBase instance.
|
|
- `PASSWORD`: The password used to log in to the PocketBase instance.
|
|
- `COLLECTION`: The name of the PocketBase collection to store your items.
|
|
|
|
Example:
|
|
```env
|
|
NEXT_PUBLIC_POCKETBASE_URL=https://pocketbase
|
|
EMAIL=example@example.com
|
|
PASSWORD=yourpassword
|
|
COLLECTION=pbcollection
|
|
```
|
|
|
|
### Running Locally
|
|
To run Budgetable on your local machine, follow these steps:
|
|
|
|
```bash
|
|
git clone https://github.com/skidoodle/budgetable
|
|
cd budgetable
|
|
pnpm install
|
|
pnpm dev
|
|
```
|
|
Access the app at `http://localhost:3000`.
|
|
|
|
### Deployment with Docker
|
|
#### Using Docker Run
|
|
1. Pull the Docker image from GitHub Container Registry:
|
|
```bash
|
|
docker pull ghcr.io/skidoodle/budgetable:main
|
|
```
|
|
2. Run the Docker container with a persistent volume:
|
|
```bash
|
|
docker run -d \
|
|
-p 3000:3000 \
|
|
--name budgetable \
|
|
-v data:/app \
|
|
-e NEXT_PUBLIC_POCKETBASE_URL=https://pocketbase \
|
|
-e EMAIL=example@example.com \
|
|
-e PASSWORD=yourpassword \
|
|
-e COLLECTION=pbcollection \
|
|
ghcr.io/skidoodle/budgetable:main
|
|
```
|
|
3. Access the app at `http://localhost:3000`.
|
|
|
|
#### Using Docker Compose
|
|
1. Create a `docker-compose.yml` file in the project root:
|
|
```yaml
|
|
services:
|
|
budgetable:
|
|
image: ghcr.io/skidoodle/budgetable:main
|
|
ports:
|
|
- "3000:3000"
|
|
volumes:
|
|
- data:/app
|
|
environment:
|
|
NEXT_PUBLIC_POCKETBASE_URL: https://pocketbase
|
|
EMAIL: example@example.com
|
|
PASSWORD: yourpassword
|
|
COLLECTION: pbcollection
|
|
volumes:
|
|
data:
|
|
```
|
|
2. Start the services:
|
|
```bash
|
|
docker-compose up -d
|
|
```
|
|
3. Access the app at `http://localhost:3000`.
|
|
|
|
## License
|
|
[GPL-3.0](https://github.com/skidoodle/budgetable/blob/master/license)
|
|
|
|
## Contributing
|
|
Contributions are welcome! Feel free to open issues or submit pull requests.
|
|
|
|
## Support
|
|
If you encounter any issues or have questions, please create an issue in the repository.
|
|
|