|
FROM ghcr.io/aurora-develop/aurora:latest AS builder |
|
FROM debian |
|
WORKDIR /app |
|
COPY --from=builder /app/aurora /app/aurora |
|
COPY --from=builder /app/harPool /app/harPool |
|
RUN apt-get update -y && apt-get install -y nodejs npm |
|
RUN npm install express http-proxy-middleware |
|
COPY anakin_proxy_linux_amd64 /app/anakin |
|
COPY <<EOF /app/index.js |
|
const express = require("express"); |
|
const app = express(); |
|
const { createProxyMiddleware } = require("http-proxy-middleware"); |
|
|
|
function authMiddleware(req, res, next) { |
|
res.setHeader('Access-Control-Allow-Origin','*'); |
|
res.setHeader('Access-Control-Allow-Headers','*'); |
|
if(req.method === "OPTIONS") return res.status(204).end(); |
|
|
|
if (!process.env.authorization || (req.headers.authorization||req.url).indexOf(process.env.authorization)>-1) { |
|
next(); |
|
} else { |
|
res.status(401).json({ error: 'Unauthorized' }); |
|
} |
|
} |
|
|
|
app.use(authMiddleware); |
|
|
|
app.use( |
|
"/aurora", |
|
createProxyMiddleware({ |
|
target: "http://127.0.0.1:8080/", |
|
changeOrigin: true, |
|
pathRewrite: { |
|
'^/aurora': '', |
|
}, |
|
}) |
|
); |
|
|
|
app.use( |
|
"/anakin", |
|
createProxyMiddleware({ |
|
target: "http://127.0.0.1:8000/", |
|
changeOrigin: true, |
|
pathRewrite: { |
|
'^/anakin': '', |
|
}, |
|
}) |
|
); |
|
app.listen(7860, () => console.log(`Example app listening on port ${port}!`)); |
|
EOF |
|
RUN chmod -R u+rwx,g+rwx,o+rwx /app |
|
|
|
CMD /app/aurora & /app/anakin & node /app/index.js |