# Publishing rust-cache
## Option 1: GitHub Releases (Recommended)
1. **Create GitHub repository:**
```bash
cd rust-cache
git init
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/SiamInnovator/rust-cache.git
git push -u origin main
```
2. **Create a release tag:**
```bash
git tag -a v0.1.0 -m "Release v0.1.0"
git push origin v0.1.0
```
3. **GitHub Actions will automatically:**
- Build binaries for Linux (x86_64, aarch64)
- Create release with downloadable archives
- Users can download pre-built binaries
4. **Update install-universal.sh:**
- Replace `SiamInnovator` with your GitHub username
- Users can then run: `curl -fsSL https://raw.githubusercontent.com/SiamInnovator/rust-cache/main/install-universal.sh | bash`
## Option 2: Publish to crates.io
1. **Create account on crates.io:**
- Visit https://crates.io
- Get API token
2. **Login:**
```bash
cargo login YOUR_API_TOKEN
```
3. **Publish:**
```bash
cargo publish
```
4. **Users can install:**
```bash
cargo install rust-cache
```
## Option 3: Package Managers
### Debian/Ubuntu (.deb)
```bash
# Install cargo-deb
cargo install cargo-deb
# Build .deb package
cargo deb
# Result in target/debian/rust-cache_0.1.0_amd64.deb
```
### Arch Linux (AUR)
Create `PKGBUILD`:
```bash
# Create AUR package
# Users can install with: yay -S rust-cache
```
### RPM (Fedora/RHEL)
```bash
# Install cargo-rpm
cargo install cargo-rpm
# Build .rpm
cargo rpm build
```
## Option 4: Docker
Create `Dockerfile`:
```dockerfile
FROM rust:1.75 as builder
WORKDIR /app
COPY . .
RUN cargo build --release
FROM debian:bookworm-slim
COPY --from=builder /app/target/release/rust-cache /usr/local/bin/
COPY --from=builder /app/target/release/rust-cache-cli /usr/local/bin/
EXPOSE 7777
CMD ["rust-cache"]
```
Build and push:
```bash
docker build -t rust-cache:latest .
docker tag rust-cache:latest SiamInnovator/rust-cache:latest
docker push SiamInnovator/rust-cache:latest
```
## Quick Start Guide for Users
After publishing, users can install with:
**GitHub:**
```bash
**Cargo:**
```bash
cargo install rust-cache
```
**Docker:**
```bash
docker run -p 7777:7777 SiamInnovator/rust-cache
```
**Manual:**
```bash
git clone https://github.com/SiamInnovator/rust-cache.git
cd rust-cache
./install.sh
```