refactor: use environment variable for GHOST_API_KEY
Replace hardcoded GHOST_API_KEY with process.env.GHOST_API_KEY in API routes to enhance security. Update Docker commands in the CI workflow to pass the GHOST_API_KEY as an environment variable. Add GHOST_API_KEY to the Next.js configuration for consistent access across the application.
This commit is contained in:
24
.github/workflows/main.yml
vendored
24
.github/workflows/main.yml
vendored
@@ -39,34 +39,38 @@ jobs:
|
|||||||
IMAGE_NAME="my-nextjs-app:$DEPLOY_ENV"
|
IMAGE_NAME="my-nextjs-app:$DEPLOY_ENV"
|
||||||
NEW_CONTAINER_NAME="$CONTAINER_NAME-new"
|
NEW_CONTAINER_NAME="$CONTAINER_NAME-new"
|
||||||
|
|
||||||
# Entferne vorhandenen temporären Container, falls vorhanden
|
# Remove existing temporary container, if any
|
||||||
if [ "$(docker ps -aq -f name=$NEW_CONTAINER_NAME)" ]; then
|
if [ "$(docker ps -aq -f name=$NEW_CONTAINER_NAME)" ]; then
|
||||||
echo "Removing existing new container ($NEW_CONTAINER_NAME)..."
|
echo "Removing existing new container ($NEW_CONTAINER_NAME)..."
|
||||||
docker rm -f "$NEW_CONTAINER_NAME" || true
|
docker rm -f "$NEW_CONTAINER_NAME" || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Starte den neuen Container auf einem temporären internen Port
|
# Start the new container on a temporary internal port
|
||||||
docker run -d --name "$NEW_CONTAINER_NAME" -p 40000:3000 $IMAGE_NAME
|
docker run -d --name "$NEW_CONTAINER_NAME" -p 40000:3000 \
|
||||||
|
-e GHOST_API_KEY="${{ secrets.GHOST_API_KEY }}" \
|
||||||
|
$IMAGE_NAME
|
||||||
|
|
||||||
# Warte, um sicherzustellen, dass der neue Container läuft
|
# Wait to ensure the new container is running
|
||||||
sleep 10
|
sleep 10
|
||||||
|
|
||||||
# Prüfe, ob der neue Container erfolgreich läuft
|
# Check if the new container is running successfully
|
||||||
if [ "$(docker inspect --format='{{.State.Running}}' $NEW_CONTAINER_NAME)" == "true" ]; then
|
if [ "$(docker inspect --format='{{.State.Running}}' $NEW_CONTAINER_NAME)" == "true" ]; then
|
||||||
# Stoppe und entferne den alten Container, falls vorhanden
|
# Stop and remove the old container, if any
|
||||||
if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then
|
if [ "$(docker ps -aq -f name=$CONTAINER_NAME)" ]; then
|
||||||
docker stop "$CONTAINER_NAME" || true
|
docker stop "$CONTAINER_NAME" || true
|
||||||
docker rm "$CONTAINER_NAME" || true
|
docker rm "$CONTAINER_NAME" || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Stoppe und entferne den temporären Container
|
# Stop and remove the temporary new container
|
||||||
docker stop "$NEW_CONTAINER_NAME" || true
|
docker stop "$NEW_CONTAINER_NAME" || true
|
||||||
docker rm "$NEW_CONTAINER_NAME" || true
|
docker rm "$NEW_CONTAINER_NAME" || true
|
||||||
|
|
||||||
# Starte den Container mit dem gewünschten Namen und Port
|
# Start the container with the desired name and port
|
||||||
docker run -d --name "$CONTAINER_NAME" -p $PORT:3000 $IMAGE_NAME
|
docker run -d --name "$CONTAINER_NAME" -p $PORT:3000 \
|
||||||
|
-e GHOST_API_KEY="${{ secrets.GHOST_API_KEY }}" \
|
||||||
|
$IMAGE_NAME
|
||||||
else
|
else
|
||||||
echo "New container failed to start."
|
echo "New container failed to start."
|
||||||
docker logs $NEW_CONTAINER_NAME
|
docker logs $NEW_CONTAINER_NAME
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { NextResponse } from "next/server";
|
|||||||
export const runtime = "nodejs"; // Force Node runtime
|
export const runtime = "nodejs"; // Force Node runtime
|
||||||
|
|
||||||
const GHOST_API_URL = "http://192.168.179.31:2368";
|
const GHOST_API_URL = "http://192.168.179.31:2368";
|
||||||
const GHOST_API_KEY = "067b8434f2e7f2a771dfcc45a7"; // Replace with your actual key
|
const GHOST_API_KEY = process.env.GHOST_API_KEY;
|
||||||
|
|
||||||
export async function GET() {
|
export async function GET() {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { NextResponse } from "next/server";
|
|||||||
export const runtime = "nodejs"; // Force Node runtime
|
export const runtime = "nodejs"; // Force Node runtime
|
||||||
|
|
||||||
const GHOST_API_URL = "http://192.168.179.31:2368";
|
const GHOST_API_URL = "http://192.168.179.31:2368";
|
||||||
const GHOST_API_KEY = "067b8434f2e7f2a771dfcc45a7"; // Replace with your actual key
|
const GHOST_API_KEY = process.env.GHOST_API_KEY;
|
||||||
|
|
||||||
export async function GET(request: Request) {
|
export async function GET(request: Request) {
|
||||||
const { searchParams } = new URL(request.url);
|
const { searchParams } = new URL(request.url);
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
import type { NextConfig } from "next";
|
import type { NextConfig } from "next";
|
||||||
|
|
||||||
const nextConfig: NextConfig = {
|
const nextConfig: NextConfig = {
|
||||||
/* config options here */
|
env: {
|
||||||
|
GHOST_API_KEY: process.env.GHOST_API_KEY,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
export default nextConfig;
|
export default nextConfig;
|
||||||
|
|||||||
Reference in New Issue
Block a user