Files
jack_calc/README.md
T
2026-03-30 15:42:39 -04:00

60 lines
2.3 KiB
Markdown

# Calculator
A simple, scientific calculator that runs in your browser.
## Dependencies
This project can be run in a few different ways, and dependencies vary based on the method you choose.
- **Browser Only**: No dependencies, but the calculator will not be served from a webserver.
- **Python**: To serve the `index.html` file, you'll need Python installed.
- **Docker**: To run the project in a container, you'll need Docker installed.
## How to Run
### Windows
- **With Python**: Run `start-server.bat`. This will start a Python web server and open the calculator in your default browser.
- **With Docker**: Run `run-docker.bat`. This will use Docker Compose to build and run the container.
### Linux / macOS
- **With Python**: Run `./start-server.sh`. You may need to make it executable first with `chmod +x start-server.sh`. This will start a Python web server and open the calculator in your default browser.
- **With Docker**: Run `./run-docker.sh`. You may need to make it executable first with `chmod +x run-docker.sh`. This will use Docker Compose to build and run the container.
## Server Setup
To deploy the calculator on a server, you only need Docker and Docker Compose installed. You do not need to clone this repository.
1. **Install Docker and Docker Compose**: Follow the official installation instructions for your server's operating system.
2. **Create a `compose.yaml` file**: On your server, create a new file named `compose.yaml` and add the following content:
```yaml
services:
web:
build: .
image: ghcr.io/jones013/jack_calculator:latest
ports:
- "8888:80"
restart: unless-stopped
```
3. **Start the container**: In the same directory where you created the `compose.yaml` file, run the following command:
```bash
docker compose up -d
```
The `-d` flag runs the container in detached mode. The `restart: unless-stopped` policy ensures that the container will automatically restart if the server is rebooted.
The calculator will then be available at `http://<your-server-ip>:8888`.
**Note on Firewalls**: Ensure that your server's firewall is configured to allow incoming traffic on port 8888.
---
## Branches
Use `**main`** or `**user**` for this layout. Maintainer tooling and full docs live on the `**developer**` branch.