mirror of
https://github.com/ansible/awx.git
synced 2026-02-23 14:05:59 -03:30
Use a proxy config that works
This commit is contained in:
@@ -1,10 +1,8 @@
|
|||||||
FROM node:10
|
FROM node:10
|
||||||
ARG NPMRC_FILE=.npmrc
|
ARG NPMRC_FILE=.npmrc
|
||||||
ENV NPMRC_FILE=${NPMRC_FILE}
|
ENV NPMRC_FILE=${NPMRC_FILE}
|
||||||
ARG TARGET_HOST='awx'
|
ARG TARGET='https://awx:8043'
|
||||||
ENV TARGET_HOST=${TARGET_HOST}
|
ENV TARGET=${TARGET}
|
||||||
ARG TARGET_PORT=8043
|
|
||||||
ENV TARGET_PORT=${TARGET_PORT}
|
|
||||||
ENV CI=true
|
ENV CI=true
|
||||||
WORKDIR /ui_next
|
WORKDIR /ui_next
|
||||||
ADD public public
|
ADD public public
|
||||||
|
|||||||
@@ -14,14 +14,11 @@ npm --prefix=awx/ui_next start
|
|||||||
|
|
||||||
### Using an External Server
|
### Using an External Server
|
||||||
If you normally run awx on an external host/server (in this example, `awx.local`),
|
If you normally run awx on an external host/server (in this example, `awx.local`),
|
||||||
you'll need to update your django settings and use the `TARGET_HOST` and `TARGET_PORT` environment variables:
|
you'll need use the `TARGET` environment variable when starting the ui development
|
||||||
|
server:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
echo "CSRF_TRUSTED_ORIGINS = ['awx.local:8043']" >> /awx/settings/development.py
|
TARGET='https://awx.local:8043' npm --prefix awx/ui_next start
|
||||||
TARGET_HOST='awx.local:8043' TARGET_PORT=8043 npm --prefix awx/ui_next start
|
|
||||||
```
|
|
||||||
**Note:** When using an external server, you must also manually update the `proxy` field in `package.json`
|
|
||||||
to point to the new websocket url.
|
|
||||||
|
|
||||||
## Testing
|
## Testing
|
||||||
```shell
|
```shell
|
||||||
@@ -79,7 +76,7 @@ To run:
|
|||||||
```shell
|
```shell
|
||||||
cd awx/awx/ui_next
|
cd awx/awx/ui_next
|
||||||
docker build -t awx-ui-next .
|
docker build -t awx-ui-next .
|
||||||
docker run --name tools_ui_next_1 --network tools_default --link 'tools_awx_1:awx' -e TARGET_HOST=awx -p '3001:3001' --rm -v $(pwd)/src:/ui_next/src awx-ui-next
|
docker run --name tools_ui_next_1 --network tools_default --link 'tools_awx_1:awx' -e TARGET="https://awx:8043" -p '3001:3001' --rm -v $(pwd)/src:/ui_next/src awx-ui-next
|
||||||
```
|
```
|
||||||
|
|
||||||
**Note:** This is for CI, test systems, zuul, etc. For local development, see [usage](https://github.com/ansible/awx/blob/devel/awx/ui_next/README.md#usage)
|
**Note:** This is for CI, test systems, zuul, etc. For local development, see [usage](https://github.com/ansible/awx/blob/devel/awx/ui_next/README.md#Development)
|
||||||
|
|||||||
@@ -86,6 +86,5 @@
|
|||||||
"<rootDir>/src/locales",
|
"<rootDir>/src/locales",
|
||||||
"index.js"
|
"index.js"
|
||||||
]
|
]
|
||||||
},
|
}
|
||||||
"proxy": "https://localhost:8043/websocket"
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,35 +1,13 @@
|
|||||||
const { createProxyMiddleware } = require('http-proxy-middleware');
|
const { createProxyMiddleware } = require('http-proxy-middleware');
|
||||||
|
|
||||||
const TARGET_PORT = process.env.TARGET_PORT || 8043;
|
const TARGET = process.env.TARGET || 'https://localhost:8043';
|
||||||
const TARGET_HOST = process.env.TARGET_HOST || 'localhost';
|
|
||||||
const TARGET = `https://${TARGET_HOST}:${TARGET_PORT}`;
|
|
||||||
|
|
||||||
// Note: The websocket proxy is configured
|
|
||||||
// manually using the 'proxy' field in package.json
|
|
||||||
|
|
||||||
module.exports = app => {
|
module.exports = app => {
|
||||||
app.use(
|
app.use(
|
||||||
'/api/login/',
|
createProxyMiddleware(['/api', '/websocket'], {
|
||||||
createProxyMiddleware({
|
|
||||||
target: TARGET,
|
target: TARGET,
|
||||||
secure: false,
|
secure: false,
|
||||||
ws: false,
|
ws: true,
|
||||||
headers: {
|
|
||||||
Host: `localhost:${TARGET_PORT}`,
|
|
||||||
Origin: TARGET,
|
|
||||||
Referer: `${TARGET}/`,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
);
|
|
||||||
app.use(
|
|
||||||
'/api',
|
|
||||||
createProxyMiddleware({
|
|
||||||
target: TARGET,
|
|
||||||
secure: false,
|
|
||||||
ws: false,
|
|
||||||
bypass: req =>
|
|
||||||
req.originalUrl.includes('hot-update.json') ||
|
|
||||||
req.originalUrl.includes('login'),
|
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user