Files
CompanySite/README.md
T
Clintchiz d402256547
Deploy to Production / Build & Verify (push) Failing after 5m56s
Ping Search Engines / Notify Search Engines (push) Successful in 2s
Deploy to Production / Pre-Deploy Tests (push) Has been skipped
Deploy to Production / Deploy to Railway (push) Has been skipped
Deploy to Production / Deploy to Render (push) Has been skipped
Deploy to Production / Deploy to VPS (PM2) (push) Has been skipped
Deploy to Production / Deploy to Fly.io (push) Has been skipped
Deploy to Production / Post-Deploy Verification (push) Has been skipped
Deploy to Production / Notify on Failure (push) Successful in 2s
E2E Test Suite / Critical User Journeys (push) Has been skipped
E2E Test Suite / API Integration Tests (push) Has been skipped
E2E Test Suite / Smoke Tests (P0) (push) Failing after 11m26s
E2E Test Suite / Form Interaction Tests (push) Failing after 11m42s
E2E Test Suite / Destructive & Chaos Tests (push) Failing after 12m2s
E2E Test Suite / Cross-Browser Regression (chromium) (push) Failing after 16m14s
E2E Test Suite / Cross-Browser Regression (webkit) (push) Failing after 17m45s
E2E Test Suite / Cross-Browser Regression (firefox) (push) Failing after 25m23s
E2E Test Suite / Security Header Tests (push) Failing after 7m55s
E2E Test Suite / Test Report Summary (push) Failing after 20s
E2E Test Suite / Mobile Device Tests (push) Failing after 2h49m9s
Uptime Monitor / Health & Response Time (push) Failing after 2s
Uptime Monitor / SSL Certificate (push) Successful in 2s
Uptime Monitor / Send Alerts (push) Failing after 3s
Uptime Monitor / Record Uptime Success (push) Has been skipped
First Init
2026-03-21 16:46:46 +05:30

243 lines
5.7 KiB
Markdown

# Astro SSR Standalone Server
An Astro-based web application configured for server-side rendering (SSR) with standalone Node.js deployment.
## Quick Start
### Development
```bash
npm install
npm run dev
```
The development server will start at `http://localhost:4321`
### Production
```bash
npm run build
npm start
```
The production server will start at `http://0.0.0.0:10000`
---
## Deployment
This application is configured for standalone Node.js deployment with SSR enabled.
> **📋 Domain Migration Documentation**
> - **Quick Deploy**: [`QUICK-DEPLOY.md`](./QUICK-DEPLOY.md) - Fast deployment reference for DevOps
> - **Full Checklist**: [`DOMAIN-MIGRATION-CHECKLIST.md`](./DOMAIN-MIGRATION-CHECKLIST.md) - Complete deployment checklist
> - **Migration Summary**: [`MIGRATION-SUMMARY.md`](./MIGRATION-SUMMARY.md) - Executive summary of changes
> - **Deployment Guide**: [`DEPLOYMENT.md`](./DEPLOYMENT.md) - General deployment instructions
### Build Process
Build the application for production:
```bash
npm run build
```
This command:
- Compiles the Astro application with SSR enabled
- Generates a standalone Node.js server in the `dist/` directory
- Creates the server entry point at `dist/entry.mjs`
- Optimizes assets for production
### Running the Server
Start the standalone Node server:
```bash
npm start
```
The server will:
- Bind to `0.0.0.0` (accessible from all network interfaces)
- Listen on port `10000` by default
- Serve server-side rendered pages with full SSR functionality
### Environment Configuration
Environment variables can be configured using a `.env` file. See `.env.example` for available options:
| Variable | Description | Default |
|----------|-------------|---------|
| **HOST** | Server bind address. Use `0.0.0.0` for deployment (all interfaces) or `localhost` for local dev | `0.0.0.0` |
| **PORT** | Server port. Can be overridden by platform (e.g., Heroku, Railway) | `10000` |
| **NODE_ENV** | Runtime environment (`production`, `development`, `test`) | `production` |
#### Example Configuration
**For production deployment:**
```env
HOST=0.0.0.0
PORT=10000
NODE_ENV=production
```
**For local development:**
```env
HOST=localhost
PORT=3000
NODE_ENV=development
```
### Available Scripts
| Command | Description |
|---------|-------------|
| `npm run dev` | Start development server with hot reload |
| `npm run build` | Build for production with SSR |
| `npm start` | Run production server |
| `npm run preview` | Preview production build locally |
| `npm run clean` | Remove build artifacts |
| `npm run prod` | Full production build and start |
---
## Architecture
### SSR Configuration
The application uses:
- **Output mode**: `server` (full SSR)
- **Adapter**: `@astro/node` in standalone mode
- **Server runtime**: Node.js standalone server
This configuration ensures:
- Server-side rendering for all pages
- SEO optimization with pre-rendered HTML
- Dynamic content support
- No external dependencies for deployment
### Server Entry Point
The standalone server is located at `server.mjs` and configures:
- Host binding to `0.0.0.0` for deployment accessibility
- Port `10000` with environment variable override support
- Production-ready server setup
---
## Deployment Platforms
### Generic Node.js Platforms
Compatible with any platform that supports Node.js:
1. **Build the application:**
```bash
npm run build
```
2. **Set environment variables** (if needed):
```bash
export HOST=0.0.0.0
export PORT=10000
export NODE_ENV=production
```
3. **Start the server:**
```bash
npm start
```
### Platform-Specific Notes
**Railway / Render / Fly.io:**
- These platforms automatically set the `PORT` environment variable
- The server will use the platform's provided port
- Ensure `npm start` is set as the start command
**Heroku:**
- Uses the `PORT` environment variable automatically
- Add `node_modules` to `.gitignore` (already configured)
- Ensure `package.json` has `"engines"` field for Node version
**Docker:**
```dockerfile
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --production
COPY . .
RUN npm run build
EXPOSE 10000
CMD ["npm", "start"]
```
---
## Project Structure
```
.
├── src/
│ ├── pages/ # Astro pages (SSR routes)
│ ├── layouts/ # Page layouts
│ └── components/ # Reusable components
├── public/ # Static assets
├── dist/ # Production build output
│ └── entry.mjs # Server entry point
├── server.mjs # Standalone server configuration
├── astro.config.mjs # Astro configuration
├── .env.example # Environment variables template
└── package.json # Project dependencies and scripts
```
---
## Features
- **Server-Side Rendering (SSR)**: Full SSR support for dynamic content and SEO
- **Standalone Deployment**: Self-contained Node.js server with no external dependencies
- **Environment Configuration**: Flexible configuration via environment variables
- **Production-Ready**: Optimized build with asset optimization and performance tuning
- **SEO Optimized**: Meta tags, Open Graph, and structured data support
- **Performance Optimized**: Image optimization with WebP, lazy loading, and asset optimization
---
## Troubleshooting
### Port Already in Use
If you see `EADDRINUSE` error:
```bash
# Windows
netstat -ano | findstr :10000
taskkill /PID <PID> /F
# Linux/Mac
lsof -ti:10000 | xargs kill -9
```
### Server Not Accessible
Ensure the server is bound to `0.0.0.0` (not `localhost`) for external access:
```env
HOST=0.0.0.0
```
### Build Failures
Clear the build cache and rebuild:
```bash
npm run clean
npm run build
```
---
## License
MIT