|
2 | 2 |
|
3 | 3 | 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. |
4 | 4 |
|
| 5 | +## Features |
| 6 | +- Add, update, and delete items in your list. |
| 7 | +- Toggle item statuses between "Paid" and "Unpaid." |
| 8 | +- User-friendly interface with responsive design. |
| 9 | + |
| 10 | +## Tech Stack |
5 | 11 | - **Framework**: [Next.js](https://nextjs.org/) |
6 | 12 | - **Styling**: [ShadCN UI](https://ui.shadcn.com/) |
7 | 13 | - **Database**: [PocketBase](https://pocketbase.io/) |
| 14 | +- **Package Manager**: [pnpm](https://pnpm.io/) |
| 15 | +- **Containerization**: [Docker](https://www.docker.com/) |
| 16 | + |
| 17 | +## Getting Started |
| 18 | + |
| 19 | +### Setting Environment Variables |
| 20 | +Before running the app, set the following environment variables in a `.env.local` file: |
| 21 | +- `NEXT_PUBLIC_POCKETBASE_URL`: The URL of your PocketBase server. |
| 22 | +- `EMAIL`: The email address used to log in to the PocketBase instance. |
| 23 | +- `PASSWORD`: The password used to log in to the PocketBase instance. |
8 | 24 |
|
9 | | -## Running Locally |
| 25 | +Example: |
| 26 | +```env |
| 27 | +NEXT_PUBLIC_POCKETBASE_URL=https://pocketbase |
| 28 | +EMAIL=example@example.com |
| 29 | +PASSWORD=yourpassword |
| 30 | +``` |
| 31 | + |
| 32 | +### Running Locally |
| 33 | +To run Budgetable on your local machine, follow these steps: |
10 | 34 |
|
11 | 35 | ```bash |
12 | 36 | git clone https://github.com/skidoodle/budgetable |
13 | 37 | cd budgetable |
14 | 38 | pnpm install |
15 | 39 | pnpm dev |
16 | 40 | ``` |
| 41 | +Access the app at `http://localhost:3000`. |
17 | 42 |
|
18 | | -## License |
| 43 | +### Deployment with Docker |
| 44 | +#### Using Docker Run |
| 45 | +1. Pull the Docker image from GitHub Container Registry: |
| 46 | + ```bash |
| 47 | + docker pull ghcr.io/skidoodle/budgetable:main |
| 48 | + ``` |
| 49 | +2. Run the Docker container with a persistent volume: |
| 50 | + ```bash |
| 51 | + docker run -d \ |
| 52 | + -p 3000:3000 \ |
| 53 | + --name budgetable \ |
| 54 | + -v data:/app \ |
| 55 | + -e NEXT_PUBLIC_POCKETBASE_URL=https://pocketbase \ |
| 56 | + -e EMAIL=example@example.com \ |
| 57 | + -e PASSWORD=yourpassword \ |
| 58 | + ghcr.io/skidoodle/budgetable:main |
| 59 | + ``` |
| 60 | +3. Access the app at `http://localhost:3000`. |
19 | 61 |
|
| 62 | +#### Using Docker Compose |
| 63 | +1. Create a `docker-compose.yml` file in the project root: |
| 64 | + ```yaml |
| 65 | + services: |
| 66 | + budgetable: |
| 67 | + image: ghcr.io/skidoodle/budgetable:main |
| 68 | + ports: |
| 69 | + - "3000:3000" |
| 70 | + volumes: |
| 71 | + - data:/app |
| 72 | + environment: |
| 73 | + NEXT_PUBLIC_POCKETBASE_URL: https://pocketbase |
| 74 | + EMAIL: example@example.com |
| 75 | + PASSWORD: yourpassword |
| 76 | + volumes: |
| 77 | + data: |
| 78 | + ``` |
| 79 | +2. Start the services: |
| 80 | + ```bash |
| 81 | + docker-compose up -d |
| 82 | + ``` |
| 83 | +3. Access the app at `http://localhost:3000`. |
| 84 | + |
| 85 | +## License |
20 | 86 | [GPL-3.0](https://github.com/skidoodle/budgetable/blob/master/license) |
| 87 | + |
| 88 | +## Contributing |
| 89 | +Contributions are welcome! Feel free to open issues or submit pull requests. |
| 90 | + |
| 91 | +## Support |
| 92 | +If you encounter any issues or have questions, please create an issue in the repository. |
| 93 | + |
0 commit comments