chore: improve default setup (#234)

* chore: remove UPLOAD_LOCATION as it isn't used in the server

* docker: remove network in docker compose as docker creates one by default

* nginx: update reverse proxy to put web at root and api at /api

* docker: remove unneeded exposed ports and docker network

Align dev setup with prod, but with ports exposed for direct connection
Most communication between services happens on the internal network, so we don't need to expose all these services.
With the nginx changes, the api and web panel are both server through the reverse proxy on / for web and /api for the API.
The only service that should expose ports is nginx as that is the entrypoint to the application.

* chore: remove CORS now we serve the api on /api in the default setup

* docs: update README.md to include /api

* Fixed docket-compose file for dev environment and websocket on web and mobile

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
This commit is contained in:
Zack Pollard
2022-06-24 04:18:50 +01:00
committed by GitHub
parent 2f2db74d73
commit 1a3d05ffc3
15 changed files with 67 additions and 202 deletions

View File

@@ -29,16 +29,13 @@ class WebscoketState {
}
@override
String toString() =>
'WebscoketState(socket: $socket, isConnected: $isConnected)';
String toString() => 'WebscoketState(socket: $socket, isConnected: $isConnected)';
@override
bool operator ==(Object other) {
if (identical(this, other)) return true;
return other is WebscoketState &&
other.socket == socket &&
other.isConnected == isConnected;
return other is WebscoketState && other.socket == socket && other.isConnected == isConnected;
}
@override
@@ -46,8 +43,7 @@ class WebscoketState {
}
class WebsocketNotifier extends StateNotifier<WebscoketState> {
WebsocketNotifier(this.ref)
: super(WebscoketState(socket: null, isConnected: false)) {
WebsocketNotifier(this.ref) : super(WebscoketState(socket: null, isConnected: false)) {
debugPrint("Init websocket instance");
}
@@ -62,10 +58,10 @@ class WebsocketNotifier extends StateNotifier<WebscoketState> {
try {
debugPrint("[WEBSOCKET] Attempting to connect to ws");
// Configure socket transports must be sepecified
Socket socket = io(
endpoint,
endpoint.toString().replaceAll('/api', ''),
OptionBuilder()
.setPath('/api/socket.io')
.setTransports(['websocket'])
.enableReconnection()
.enableForceNew()
@@ -126,7 +122,6 @@ class WebsocketNotifier extends StateNotifier<WebscoketState> {
}
}
final websocketProvider =
StateNotifierProvider<WebsocketNotifier, WebscoketState>((ref) {
final websocketProvider = StateNotifierProvider<WebsocketNotifier, WebscoketState>((ref) {
return WebsocketNotifier(ref);
});