Add full monorepo: virtual-banker, backend, frontend, docs, scripts, deployment
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
188
docs/BLOCKSCOUT_START_AND_BUILD.md
Normal file
188
docs/BLOCKSCOUT_START_AND_BUILD.md
Normal file
@@ -0,0 +1,188 @@
|
||||
# Start Blockscout Container and Build Assets
|
||||
|
||||
## Problem
|
||||
|
||||
The Blockscout container is not running, so we can't build assets or access it.
|
||||
|
||||
## Solution
|
||||
|
||||
### Quick Fix Commands (From VMID 5000)
|
||||
|
||||
```bash
|
||||
# Step 1: Find and start the container
|
||||
BLOCKSCOUT_CONTAINER=$(docker ps -a | grep blockscout | grep -v postgres | awk '{print $1}' | head -1)
|
||||
docker start $BLOCKSCOUT_CONTAINER
|
||||
|
||||
# Step 2: Wait for container to initialize (30-60 seconds)
|
||||
echo "Waiting for Blockscout to start..."
|
||||
sleep 30
|
||||
|
||||
# Step 3: Build static assets
|
||||
docker exec -it $BLOCKSCOUT_CONTAINER mix phx.digest
|
||||
|
||||
# Step 4: Verify assets were built
|
||||
docker exec -it $BLOCKSCOUT_CONTAINER test -f priv/static/cache_manifest.json && \
|
||||
echo "✅ Assets built" || echo "❌ Assets still missing"
|
||||
```
|
||||
|
||||
### Alternative: Use Docker Compose
|
||||
|
||||
If Blockscout is managed via docker-compose:
|
||||
|
||||
```bash
|
||||
cd /opt/blockscout
|
||||
|
||||
# Start Blockscout
|
||||
docker compose up -d blockscout
|
||||
|
||||
# Wait for startup
|
||||
sleep 30
|
||||
|
||||
# Build assets
|
||||
BLOCKSCOUT_CONTAINER=$(docker ps | grep blockscout | grep -v postgres | awk '{print $1}' | head -1)
|
||||
docker exec -it $BLOCKSCOUT_CONTAINER mix phx.digest
|
||||
```
|
||||
|
||||
### Automated Script
|
||||
|
||||
Run the automated script:
|
||||
|
||||
```bash
|
||||
# From Proxmox host
|
||||
cd /home/intlc/projects/proxmox/explorer-monorepo
|
||||
./scripts/start-blockscout-and-build-assets.sh
|
||||
```
|
||||
|
||||
Or from inside VMID 5000:
|
||||
|
||||
```bash
|
||||
cd /home/intlc/projects/proxmox/explorer-monorepo
|
||||
./scripts/start-blockscout-and-build-assets.sh
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Container Won't Start
|
||||
|
||||
**Check why it's not starting:**
|
||||
```bash
|
||||
docker logs $BLOCKSCOUT_CONTAINER 2>&1 | tail -50
|
||||
```
|
||||
|
||||
**Common issues:**
|
||||
1. **Database connection failed** - Check if postgres container is running:
|
||||
```bash
|
||||
docker ps | grep postgres
|
||||
```
|
||||
|
||||
2. **Port conflict** - Check if port 4000 is in use:
|
||||
```bash
|
||||
netstat -tlnp | grep 4000
|
||||
```
|
||||
|
||||
3. **Missing environment variables** - Check docker-compose.yml or .env file
|
||||
|
||||
### Assets Build Fails
|
||||
|
||||
**If `mix phx.digest` fails:**
|
||||
|
||||
1. **Try alternative method:**
|
||||
```bash
|
||||
docker exec -it $BLOCKSCOUT_CONTAINER npm run deploy
|
||||
```
|
||||
|
||||
2. **Check if dependencies are installed:**
|
||||
```bash
|
||||
docker exec -it $BLOCKSCOUT_CONTAINER mix deps.get
|
||||
docker exec -it $BLOCKSCOUT_CONTAINER npm install --prefix apps/block_scout_web/assets
|
||||
```
|
||||
|
||||
3. **Build manually inside container:**
|
||||
```bash
|
||||
docker exec -it $BLOCKSCOUT_CONTAINER bash
|
||||
# Inside container:
|
||||
cd apps/block_scout_web/assets
|
||||
npm install
|
||||
npm run deploy
|
||||
mix phx.digest
|
||||
```
|
||||
|
||||
### Container Starts Then Stops
|
||||
|
||||
**Check logs for errors:**
|
||||
```bash
|
||||
docker logs $BLOCKSCOUT_CONTAINER 2>&1 | grep -i error | tail -20
|
||||
```
|
||||
|
||||
**Common causes:**
|
||||
- Database migrations not run (but we verified they are)
|
||||
- Missing environment variables
|
||||
- Port conflicts
|
||||
- Memory/resource limits
|
||||
|
||||
**Fix:**
|
||||
```bash
|
||||
# Check docker-compose resource limits
|
||||
grep -A 10 "blockscout:" /opt/blockscout/docker-compose.yml | grep -E "(memory|cpus)"
|
||||
|
||||
# Increase if needed or check system resources
|
||||
free -h
|
||||
```
|
||||
|
||||
## Verification
|
||||
|
||||
After starting and building assets:
|
||||
|
||||
```bash
|
||||
# 1. Check container is running
|
||||
docker ps | grep blockscout
|
||||
|
||||
# 2. Check assets exist
|
||||
BLOCKSCOUT_CONTAINER=$(docker ps | grep blockscout | grep -v postgres | awk '{print $1}' | head -1)
|
||||
docker exec -it $BLOCKSCOUT_CONTAINER ls -la priv/static/cache_manifest.json
|
||||
|
||||
# 3. Check Blockscout is responding
|
||||
curl -s http://localhost:4000/api/v2/stats | head -20
|
||||
|
||||
# 4. Check logs for errors
|
||||
docker logs $BLOCKSCOUT_CONTAINER 2>&1 | tail -30
|
||||
```
|
||||
|
||||
## Complete Fix Sequence
|
||||
|
||||
```bash
|
||||
# From VMID 5000 - Complete fix sequence
|
||||
|
||||
# 1. Start container
|
||||
BLOCKSCOUT_CONTAINER=$(docker ps -a | grep blockscout | grep -v postgres | awk '{print $1}' | head -1)
|
||||
docker start $BLOCKSCOUT_CONTAINER
|
||||
|
||||
# 2. Wait for startup
|
||||
echo "Waiting 30 seconds for Blockscout to initialize..."
|
||||
sleep 30
|
||||
|
||||
# 3. Build assets
|
||||
docker exec -it $BLOCKSCOUT_CONTAINER mix phx.digest
|
||||
|
||||
# 4. Verify assets
|
||||
docker exec -it $BLOCKSCOUT_CONTAINER test -f priv/static/cache_manifest.json && \
|
||||
echo "✅ Assets built successfully" || echo "❌ Assets still missing"
|
||||
|
||||
# 5. Check if Blockscout is responding
|
||||
curl -s http://localhost:4000/api/v2/stats && \
|
||||
echo "✅ Blockscout API working" || echo "⚠️ API not responding yet"
|
||||
|
||||
# 6. Check logs
|
||||
docker logs $BLOCKSCOUT_CONTAINER 2>&1 | tail -20
|
||||
```
|
||||
|
||||
## Next Steps
|
||||
|
||||
After starting the container and building assets:
|
||||
|
||||
1. ✅ Verify container is running: `docker ps | grep blockscout`
|
||||
2. ✅ Verify assets exist: `docker exec -it blockscout test -f priv/static/cache_manifest.json`
|
||||
3. ✅ Verify API responds: `curl http://localhost:4000/api/v2/stats`
|
||||
4. ✅ Check docker-compose startup command is correct
|
||||
5. ✅ Ensure container stays running (check logs for crashes)
|
||||
|
||||
Reference in New Issue
Block a user