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
### Required Software
- **PHP** 8.2 or higher
- **PHP** 8.3 or higher
- **Composer** 2.x
- **Node.js** 18.x or higher
- **npm** 9.x or higher
- **Node.js** 24.x or higher
- **npm** 10.x or higher
- **MySQL** 8.0 or higher
- **Redis** 6.x or higher
- **Git**
### Optional but Recommended
- **Laravel Herd** (all-in-one Laravel development environment)
- **TablePlus** or **MySQL Workbench** (database GUI)
- **Redis Desktop Manager** (Redis GUI)
- **Postman** or **Insomnia** (API testing)
## Step 1: Clone Repository
```bash
# 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
```
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
```bash
# All Laravel commands run from the website/ directory
cd website
# Create develop branch
git checkout -b develop
```
## Step 3: Configure Environment
@@ -56,11 +51,6 @@ DB_DATABASE=ezscale_billing
DB_USERNAME=root
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_KEY=pk_test_...
STRIPE_SECRET=sk_test_...
@@ -101,110 +91,39 @@ All commands below should be run from the `website/` directory:
```bash
cd website
# Install base PHP dependencies (already in composer.json from base install)
# Install PHP and Node dependencies
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
```
## Step 6: Add Vuexy Theme
```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
## Step 6: Run Migrations
```bash
# Generate app key
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
php artisan migrate
```
## Step 8: Seed Initial Data
# Set up Passport for OAuth2/SSO
php artisan passport:install
```bash
# Create seeders
php artisan make:seeder RoleSeeder
php artisan make:seeder PlanSeeder
php artisan make:seeder DatacenterSeeder
# Run seeders
# Run seeders (roles, plans, admin user, optional demo data)
php artisan db:seed
```
## Step 9: Configure Authentication
```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
## Step 7: Start Development Servers
All commands below should be run from the `website/` directory:
```bash
cd website
# Terminal 1: Start Laravel server
php artisan serve
# 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
# One-shot: starts artisan serve + queue worker + pail log viewer + vite
composer run dev
```
## Step 11: Configure Local Domains (Optional)
## Step 8: Configure Local Domains (Optional)
If using Laravel Herd or Valet, you can set up local domains:
@@ -220,7 +139,7 @@ Update `.env`:
APP_URL=http://ezscale.test
```
## Step 12: Set Up Testing
## Step 9: Set Up Testing
```bash
# Create test database
@@ -238,7 +157,7 @@ php artisan test
### Daily Development
```bash
# Pull latest changes
git pull origin develop
git pull origin main
# Navigate to Laravel directory
cd website
@@ -250,27 +169,18 @@ npm install
# Run migrations
php artisan migrate
# Start dev servers
php artisan serve
npm run dev
php artisan queue:work
# Start dev servers (all-in-one)
composer run dev
```
### Creating Features
```bash
# Create feature branch from develop
git checkout develop
git pull
git checkout -b feature/billing-system
# Make changes, commit often
# Commit directly to main (per project convention)
git add .
git commit -m "Add Stripe billing service"
git commit -m "feat: add billing feature"
# Push to remote
git push origin feature/billing-system
# Create PR on GitHub: feature/billing-system -> develop
# Push to Gitea remote
git push origin main
```
### Running Tests
@@ -285,37 +195,20 @@ php artisan test --filter BillingServiceTest
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/`)
- [ ] Vuexy theme integrated
- [ ] Environment configured (.env)
- [x] Laravel 12 application cloned and `composer install` + `npm install` done
- [ ] `.env` configured (DB credentials, Stripe keys, PayPal credentials)
- [ ] Database created and connected
- [ ] All dependencies installed (Cashier, Fortify, Passport, PayPal, Spatie)
- [ ] Custom migrations created (see PROJECT_DEVELOPMENT.md for full schema)
- [ ] user_profiles
- [ ] plans
- [ ] 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
- [ ] `php artisan migrate` run successfully
- [ ] `php artisan passport:install` run
- [ ] `php artisan db:seed` run (roles, plans, admin user)
- [ ] `composer run dev` starts without errors
- [ ] Email sending working (test with Mailtrap initially)
- [ ] Git repository initialized
- [ ] CI/CD pipeline set up (GitHub Actions)
- [ ] Staging environment created
- [ ] Stripe test keys configured
- [ ] PayPal sandbox credentials configured
## Common Issues & Solutions
@@ -328,14 +221,11 @@ Use this checklist to track Phase 1 Foundation progress:
### Issue: Database connection refused
**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
**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
**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
@@ -354,16 +244,13 @@ Before full development, obtain these API credentials:
- [ ] Enhance API key
### External Services
- [ ] SupportPal API credentials
- [ ] ElastiFlow API access
- [ ] Mailgun or SendGrid API key
- [ ] SMTP credentials (mail sending)
- [ ] Discord webhook URL
- [ ] Twilio credentials (for SMS alerts - optional)
- [ ] Cloudflare API token (for DNS integration)
- [ ] Coinbase Commerce API (for crypto payments - optional)
### Development Tools
- [ ] GitHub personal access token (for Actions)
- [ ] Gitea personal access token (for Gitea Actions/CI)
- [ ] Sentry DSN (for error tracking - optional)
## Documentation Reference
@@ -388,9 +275,10 @@ Once Phase 1 is complete:
## Getting Help
- **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
- **Vuetify Documentation**: https://vuetifyjs.com/en/
- **Project Planning Docs**: See CLAUDE.md, PROJECT_DEVELOPMENT.md, FEATURES.md
- **Issues**: https://git.ezscale.cloud/EZSCALE/website/issues
## Development Team

View File

@@ -18,7 +18,7 @@
- [x] Dark mode UI across all pages
- [x] Migrate frontend from Tailwind CSS to Vuetify 3 (Vuexy design system) with TypeScript
- [ ] 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)
- [ ] Configure Mailgun or SendGrid for emails
@@ -39,7 +39,7 @@
- [x] 8 Vue pages for billing flow (plans, checkout, subscriptions, billing/invoices/transactions)
- [x] 29 Phase 2 tests (53 total passing)
- [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)
- [ ] Proration logic for upgrades/downgrades (Cashier swap method)
- [x] Admin coupon management CRUD
@@ -266,10 +266,11 @@
- [x] About page
- [x] Contact page with form submission backend
- [ ] Blog/news section (optional, or use WordPress?)
- [ ] Knowledge base / FAQ:
- [ ] Getting started guides
- [ ] Tutorials
- [ ] Troubleshooting
- [x] Knowledge base / FAQ:
- [x] Categories and articles models + migrations
- [ ] Getting started guides (content population)
- [ ] Tutorials (content population)
- [ ] Troubleshooting (content population)
- [ ] API documentation
- [x] Legal pages:
- [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,