docs: remove ipv4-outreach-tickets.txt; refresh GETTING_STARTED

Outreach notes don't belong in the repo. GETTING_STARTED reconciled
against current composer/npm scripts: fix Gitea clone URL, drop Vuexy
references, remove Redis requirement, replace multi-terminal startup
with `composer run dev`, update PHP/Node versions to 8.3/24, fix
branch workflow to main. TASKS.md: mark multi-currency and KB as done,
fix CI/CD reference from GitHub to Gitea Actions.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-26 22:40:18 -04:00
parent ab3a195e85
commit efe3fa53a4
3 changed files with 45 additions and 271 deletions

View File

@@ -5,38 +5,33 @@ This guide will help you start building the EZSCALE Billing Platform on your dev
## Prerequisites ## Prerequisites
### Required Software ### Required Software
- **PHP** 8.2 or higher - **PHP** 8.3 or higher
- **Composer** 2.x - **Composer** 2.x
- **Node.js** 18.x or higher - **Node.js** 24.x or higher
- **npm** 9.x or higher - **npm** 10.x or higher
- **MySQL** 8.0 or higher - **MySQL** 8.0 or higher
- **Redis** 6.x or higher
- **Git** - **Git**
### Optional but Recommended ### Optional but Recommended
- **Laravel Herd** (all-in-one Laravel development environment) - **Laravel Herd** (all-in-one Laravel development environment)
- **TablePlus** or **MySQL Workbench** (database GUI) - **TablePlus** or **MySQL Workbench** (database GUI)
- **Redis Desktop Manager** (Redis GUI)
- **Postman** or **Insomnia** (API testing) - **Postman** or **Insomnia** (API testing)
## Step 1: Clone Repository ## Step 1: Clone Repository
```bash ```bash
# Clone the repository # Clone the repository
git clone git@github.com:EZSCALE/accounting.git ezscale_billing git clone git@git.ezscale.cloud:EZSCALE/website.git ezscale_billing
cd ezscale_billing cd ezscale_billing
``` ```
The Laravel 12 application is already installed in the `website/` directory as a **base install** (no additional packages or customizations yet). The Laravel 12 application is in the `website/` directory. All packages are already in `composer.json` — no separate `composer require` commands needed.
## Step 2: Navigate to Laravel Directory ## Step 2: Navigate to Laravel Directory
```bash ```bash
# All Laravel commands run from the website/ directory # All Laravel commands run from the website/ directory
cd website cd website
# Create develop branch
git checkout -b develop
``` ```
## Step 3: Configure Environment ## Step 3: Configure Environment
@@ -56,11 +51,6 @@ DB_DATABASE=ezscale_billing
DB_USERNAME=root DB_USERNAME=root
DB_PASSWORD=your_password DB_PASSWORD=your_password
REDIS_CLIENT=phpredis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
# Stripe keys (get from Stripe dashboard) # Stripe keys (get from Stripe dashboard)
STRIPE_KEY=pk_test_... STRIPE_KEY=pk_test_...
STRIPE_SECRET=sk_test_... STRIPE_SECRET=sk_test_...
@@ -101,110 +91,39 @@ All commands below should be run from the `website/` directory:
```bash ```bash
cd website cd website
# Install base PHP dependencies (already in composer.json from base install) # Install PHP and Node dependencies
composer install composer install
# Install additional PHP dependencies for the project
composer require laravel/cashier
composer require laravel/fortify
composer require laravel/passport
composer require srmklive/laravel-paypal
composer require spatie/laravel-permission
composer require --dev laravel/telescope
# Install Node dependencies
npm install npm install
``` ```
## Step 6: Add Vuexy Theme ## Step 6: Run Migrations
```bash
# Extract Vuexy theme source files to:
# website/resources/js/vuexy/
# website/resources/css/vuexy/
# Update vite.config.js to include Vuexy assets
# Update app.js to import Vuexy components
# Detailed integration instructions in Vuexy documentation
```
## Step 7: Run Migrations
```bash ```bash
# Generate app key # Generate app key
php artisan key:generate php artisan key:generate
# Run Laravel's default migrations
php artisan migrate
# Publish Cashier migrations
php artisan vendor:publish --tag="cashier-migrations"
# Publish Passport migrations
php artisan passport:install
# Publish Spatie migrations
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
# Now create your custom migrations (see PROJECT_DEVELOPMENT.md for schema)
# php artisan make:migration create_user_profiles_table
# php artisan make:migration create_plans_table
# ... etc
# Run all migrations # Run all migrations
php artisan migrate php artisan migrate
```
## Step 8: Seed Initial Data # Set up Passport for OAuth2/SSO
php artisan passport:install
```bash # Run seeders (roles, plans, admin user, optional demo data)
# Create seeders
php artisan make:seeder RoleSeeder
php artisan make:seeder PlanSeeder
php artisan make:seeder DatacenterSeeder
# Run seeders
php artisan db:seed php artisan db:seed
``` ```
## Step 9: Configure Authentication ## Step 7: Start Development Servers
```bash
# Publish Fortify views
php artisan vendor:publish --tag=fortify-views
# Install Fortify
php artisan fortify:install
# Configure Fortify features in config/fortify.php
# Enable: registration, reset passwords, email verification, two factor
# Set up Passport for OAuth2 (SSO later)
php artisan passport:install
```
## Step 10: Start Development Servers
All commands below should be run from the `website/` directory: All commands below should be run from the `website/` directory:
```bash ```bash
cd website cd website
# Terminal 1: Start Laravel server # One-shot: starts artisan serve + queue worker + pail log viewer + vite
php artisan serve composer run dev
# Terminal 2: Start Vite dev server
npm run dev
# Terminal 3: Start queue worker
php artisan queue:work
# Optional Terminal 4: Start Horizon (queue monitoring)
php artisan horizon
``` ```
## Step 11: Configure Local Domains (Optional) ## Step 8: Configure Local Domains (Optional)
If using Laravel Herd or Valet, you can set up local domains: If using Laravel Herd or Valet, you can set up local domains:
@@ -220,7 +139,7 @@ Update `.env`:
APP_URL=http://ezscale.test APP_URL=http://ezscale.test
``` ```
## Step 12: Set Up Testing ## Step 9: Set Up Testing
```bash ```bash
# Create test database # Create test database
@@ -238,7 +157,7 @@ php artisan test
### Daily Development ### Daily Development
```bash ```bash
# Pull latest changes # Pull latest changes
git pull origin develop git pull origin main
# Navigate to Laravel directory # Navigate to Laravel directory
cd website cd website
@@ -250,27 +169,18 @@ npm install
# Run migrations # Run migrations
php artisan migrate php artisan migrate
# Start dev servers # Start dev servers (all-in-one)
php artisan serve composer run dev
npm run dev
php artisan queue:work
``` ```
### Creating Features ### Creating Features
```bash ```bash
# Create feature branch from develop # Commit directly to main (per project convention)
git checkout develop
git pull
git checkout -b feature/billing-system
# Make changes, commit often
git add . git add .
git commit -m "Add Stripe billing service" git commit -m "feat: add billing feature"
# Push to remote # Push to Gitea remote
git push origin feature/billing-system git push origin main
# Create PR on GitHub: feature/billing-system -> develop
``` ```
### Running Tests ### Running Tests
@@ -285,37 +195,20 @@ php artisan test --filter BillingServiceTest
php artisan test --coverage php artisan test --coverage
``` ```
## Phase 1 Checklist ## New Developer Checklist
Use this checklist to track Phase 1 Foundation progress: Use this checklist when onboarding to the project:
- [x] Laravel 12 project initialized (base install in `website/`) - [x] Laravel 12 application cloned and `composer install` + `npm install` done
- [ ] Vuexy theme integrated - [ ] `.env` configured (DB credentials, Stripe keys, PayPal credentials)
- [ ] Environment configured (.env)
- [ ] Database created and connected - [ ] Database created and connected
- [ ] All dependencies installed (Cashier, Fortify, Passport, PayPal, Spatie) - [ ] `php artisan migrate` run successfully
- [ ] Custom migrations created (see PROJECT_DEVELOPMENT.md for full schema) - [ ] `php artisan passport:install` run
- [ ] user_profiles - [ ] `php artisan db:seed` run (roles, plans, admin user)
- [ ] plans - [ ] `composer run dev` starts without errors
- [ ] datacenters
- [ ] payment_transactions
- [ ] services
- [ ] provisioning_logs
- [ ] bandwidth_usage
- [ ] audit_logs
- [ ] support_tickets (mirror)
- [ ] announcements
- [ ] Migrations run successfully
- [ ] Seeders created and run
- [ ] Fortify authentication configured
- [ ] Passport OAuth2 set up
- [ ] Spatie roles configured (admin, customer)
- [ ] Redis working
- [ ] Queue working
- [ ] Email sending working (test with Mailtrap initially) - [ ] Email sending working (test with Mailtrap initially)
- [ ] Git repository initialized - [ ] Stripe test keys configured
- [ ] CI/CD pipeline set up (GitHub Actions) - [ ] PayPal sandbox credentials configured
- [ ] Staging environment created
## Common Issues & Solutions ## Common Issues & Solutions
@@ -328,14 +221,11 @@ Use this checklist to track Phase 1 Foundation progress:
### Issue: Database connection refused ### Issue: Database connection refused
**Solution**: Check MySQL is running, verify credentials in .env **Solution**: Check MySQL is running, verify credentials in .env
### Issue: Redis connection failed
**Solution**: Start Redis server: `redis-server` or check if running with `redis-cli ping`
### Issue: Vite not compiling ### Issue: Vite not compiling
**Solution**: Clear Vite cache: `npm run build`, restart `npm run dev` **Solution**: Clear Vite cache: `npm run build`, then restart `composer run dev`
### Issue: Queue jobs not processing ### Issue: Queue jobs not processing
**Solution**: Ensure `php artisan queue:work` is running, check Redis connection **Solution**: Ensure `composer run dev` is running (it starts the queue worker automatically)
## API Credentials You'll Need ## API Credentials You'll Need
@@ -354,16 +244,13 @@ Before full development, obtain these API credentials:
- [ ] Enhance API key - [ ] Enhance API key
### External Services ### External Services
- [ ] SupportPal API credentials
- [ ] ElastiFlow API access - [ ] ElastiFlow API access
- [ ] Mailgun or SendGrid API key - [ ] SMTP credentials (mail sending)
- [ ] Discord webhook URL - [ ] Discord webhook URL
- [ ] Twilio credentials (for SMS alerts - optional)
- [ ] Cloudflare API token (for DNS integration) - [ ] Cloudflare API token (for DNS integration)
- [ ] Coinbase Commerce API (for crypto payments - optional)
### Development Tools ### Development Tools
- [ ] GitHub personal access token (for Actions) - [ ] Gitea personal access token (for Gitea Actions/CI)
- [ ] Sentry DSN (for error tracking - optional) - [ ] Sentry DSN (for error tracking - optional)
## Documentation Reference ## Documentation Reference
@@ -388,9 +275,10 @@ Once Phase 1 is complete:
## Getting Help ## Getting Help
- **Laravel Documentation**: https://laravel.com/docs/12.x - **Laravel Documentation**: https://laravel.com/docs/12.x
- **Vuexy Documentation**: Check included docs in theme package
- **Cashier Documentation**: https://laravel.com/docs/12.x/billing - **Cashier Documentation**: https://laravel.com/docs/12.x/billing
- **Vuetify Documentation**: https://vuetifyjs.com/en/
- **Project Planning Docs**: See CLAUDE.md, PROJECT_DEVELOPMENT.md, FEATURES.md - **Project Planning Docs**: See CLAUDE.md, PROJECT_DEVELOPMENT.md, FEATURES.md
- **Issues**: https://git.ezscale.cloud/EZSCALE/website/issues
## Development Team ## Development Team

View File

@@ -18,7 +18,7 @@
- [x] Dark mode UI across all pages - [x] Dark mode UI across all pages
- [x] Migrate frontend from Tailwind CSS to Vuetify 3 (Vuexy design system) with TypeScript - [x] Migrate frontend from Tailwind CSS to Vuetify 3 (Vuexy design system) with TypeScript
- [ ] Configure Cloudflare Zero Trust for admin panel - [ ] Configure Cloudflare Zero Trust for admin panel
- [ ] Set up GitHub Actions CI/CD pipeline - [ ] Set up Gitea Actions CI/CD pipeline
- [ ] Create staging environment (staging.account.ezscale.cloud) - [ ] Create staging environment (staging.account.ezscale.cloud)
- [ ] Configure Mailgun or SendGrid for emails - [ ] Configure Mailgun or SendGrid for emails
@@ -39,7 +39,7 @@
- [x] 8 Vue pages for billing flow (plans, checkout, subscriptions, billing/invoices/transactions) - [x] 8 Vue pages for billing flow (plans, checkout, subscriptions, billing/invoices/transactions)
- [x] 29 Phase 2 tests (53 total passing) - [x] 29 Phase 2 tests (53 total passing)
- [x] Invoice PDF generation (barryvdh/laravel-dompdf) - [x] Invoice PDF generation (barryvdh/laravel-dompdf)
- [ ] Multi-currency support (EUR, GBP, USD, etc.) - [x] Multi-currency support (EUR, GBP, USD, etc.)
- [ ] Tax calculation integration (TaxJar/Avalara or manual rates) - [ ] Tax calculation integration (TaxJar/Avalara or manual rates)
- [ ] Proration logic for upgrades/downgrades (Cashier swap method) - [ ] Proration logic for upgrades/downgrades (Cashier swap method)
- [x] Admin coupon management CRUD - [x] Admin coupon management CRUD
@@ -266,10 +266,11 @@
- [x] About page - [x] About page
- [x] Contact page with form submission backend - [x] Contact page with form submission backend
- [ ] Blog/news section (optional, or use WordPress?) - [ ] Blog/news section (optional, or use WordPress?)
- [ ] Knowledge base / FAQ: - [x] Knowledge base / FAQ:
- [ ] Getting started guides - [x] Categories and articles models + migrations
- [ ] Tutorials - [ ] Getting started guides (content population)
- [ ] Troubleshooting - [ ] Tutorials (content population)
- [ ] Troubleshooting (content population)
- [ ] API documentation - [ ] API documentation
- [x] Legal pages: - [x] Legal pages:
- [x] Terms of Service - [x] Terms of Service

View File

@@ -1,115 +0,0 @@
== TICKET 1 ==
EMAIL: updates@hostigol.com
SUBJECT: Your IPv4 pricing — let's talk
BODY:
Hi there,
I hope you're doing well. I wanted to personally reach out regarding the recent IPv4 pricing update, as I know this affects a good number of your services with us.
Looking at your account, this impacts 11 of your VPS services with a total of 41 additional IPv4 addresses. Your current IP add-on cost is $123.00/month, which will move to $328.00/month at the new $8/IP rate — an increase of $205.00/month.
I completely understand that's a significant change, and we genuinely value the trust you've placed in us. A couple of things that might help:
• If there are any IPs across your services that you're no longer actively using, we're happy to remove those and bring your cost down
• IPv6 is included at no charge with every VPS — if any of your use cases can work with IPv6, that's another way to offset the increase
Please don't hesitate to reply here — we're happy to chat about what works best for you.
Thank you,
== TICKET 2 ==
EMAIL: silvernetservers@gmail.com
SUBJECT: Your IPv4 pricing — let's talk
BODY:
Hi Parind,
I hope you're doing well. I wanted to personally reach out regarding the recent IPv4 pricing update, as this affects several of your services.
This impacts 6 of your VPS services with a total of 24 additional IPv4 addresses. Your current IP add-on cost is $72.00/month, which will move to $192.00/month at the new $8/IP rate — an increase of $120.00/month.
A couple of things that might help:
• If any IPs aren't actively in use, we're happy to remove them and lower your cost
• IPv6 is included at no charge if any of your services can switch over
Please reply here and let us know how you'd like to proceed.
Thank you,
== TICKET 3 ==
EMAIL: zoneworxlimited@gmail.com
SUBJECT: Your IPv4 pricing — let's talk
BODY:
Hi,
I hope you're doing well. I wanted to personally reach out regarding the recent IPv4 pricing update, as this affects several of your services.
This impacts 4 of your VPS services with a total of 16 additional IPv4 addresses. Your current IP add-on cost is $48.00/month, which will move to $128.00/month — an increase of $80.00/month.
A couple of options:
• If any of your additional IPs aren't actively needed, we can remove them to bring your cost down
• IPv6 is available at no extra charge if any of your use cases can switch over
Please reply here and let us know how you'd like to proceed.
Thank you,
== TICKET 4 ==
EMAIL: fzguiloui@pimarketing.co
SUBJECT: Following up on the IPv4 pricing update
BODY:
Hi Fatima,
I wanted to follow up on the IPv4 pricing change. You have 7 additional IPs on your Mini VPS, and the new pricing will change your IP add-on cost from $21.00/month to $56.00/month — an increase of $35.00/month.
A few things to consider:
• If any of those IPs aren't actively needed, we can remove them right away to lower your cost
• If you need the IPs but the new rate is difficult, please let me know — I'd rather work something out than lose you as a customer
• IPv6 is available at no extra charge if any of your use cases can switch over
Just reply here and we'll figure out the best option for you.
Thank you,
== TICKET 5 ==
EMAIL: manoj.niks@gmail.com
SUBJECT: Quick note about the IPv4 update
BODY:
Hi Manoj,
I hope you're doing well. Just a quick note about the recent IPv4 pricing change — it affects 4 of your Standard VPS services that each have an extra IP.
Your IP add-on cost will go from $12.00/month to $32.00/month — an increase of $20.00/month.
If any of those extra IPs aren't something you're actively using, just let me know and we'll get them removed for you. Otherwise, no action needed on your end.
Feel free to reach out if you have any questions.
Thank you,
== TICKET 6 ==
EMAIL: contact@oomos.com
SUBJECT: Following up on the IPv4 pricing update
BODY:
Hi,
I hope you're doing well. I wanted to follow up on the IPv4 pricing change. You have 3 additional IPs on your Basic VPS, and the new pricing will change your IP add-on cost from $9.00/month to $24.00/month — an increase of $15.00/month.
If any of those IPs aren't actively needed, we can remove them to bring your cost down. IPv6 is also available at no extra charge if any of your use cases can switch over.
Just reply here if you have any questions or would like to make changes.
Thank you,
== TICKET 7 ==
EMAIL: aartisakhare138@gmail.com
SUBJECT: Following up on the IPv4 pricing update
BODY:
Hi Aarti,
I hope you're doing well. Just a quick personal follow-up on the IPv4 pricing change — you have 2 additional IPs on your Dev Starter VPS, and your IP add-on cost will go from $6.00/month to $16.00/month.
If either of those extra IPs isn't something you need anymore, just let me know and we'll take care of it. Otherwise, no worries at all.
Feel free to reach out if you have questions.
Thank you,