-
-
Notifications
You must be signed in to change notification settings - Fork 66
/
launcher
executable file
·128 lines (120 loc) · 4.46 KB
/
launcher
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#!/usr/bin/env bash
export OB_DIR="$(pwd)/ob"
if [ -f ./ob/cmd/env ]; then
cd $OB_DIR
. ./cmd/env
else
echo "Error! Please run the ./launcher from the root osintbuddy directory only."
exit 1
fi
export OB_CMD=$1;
export OB_CMD_ARGS=$2;
export OB_CMD_OPT1=${3:-""};
export OB_CMD_OPT2=${4:-""};
export OB_CMD_OPT3=${5:-""};
# localhost:45910/login/oauth/authorize?client_id=&response_type=&redirect_uri=&scope=read&state=
usage_containers () {
echo ""
echo -e "$(c 0uY) CONTAINERS: CONTAINER DESCRIPTION.$(c)"
echo -e " $(c Y )ui$(c): React - SPA frontend."
echo -e " $(c Y )backend$(c): FastAPI - running on Uvicorn with hot reloading."
echo -e " $(c Y )casdoor$(c): Casdoor - An open-source IAM / SSO platform with web UI supporting OAuth 2.0, OIDC, etc"
echo -e " $(c Y )worker$(c): Celery - Distributed Task Queue."
echo -e " $(c Y )clearly$(c): Clearly - Real time monitor for your celery tasks and workers."
echo -e " $(c Y )redis$(c): Redis - In-memory database that persists on disk. Used by worker and for caching."
echo -e " $(c Y )s3$(c): Minio S3 object storage - In the future we plan to also support seaweedfs."
echo -e " $(c Y )db$(c): PostgreSQL - need I say anything else?"
echo -e " $(c Y )sdb$(c): ScyllaDB - a NoSQL database that optimizes for raw performance. Used by JanusGraph."
# TODO: Make lucene the default option...
# > "Apache Lucene performs better in small scale, single machine applications..."
# source: https://docs.janusgraph.org/index-backend/
echo -e " $(c Y )index$(c): Solr - Open source enterprise search platform - Used by JanusGraph."
echo -e " $(c Y )janus$(c): JanusGraph - Distributed, open source, massively scalable graph database."
exit 1
}
usage () {
echo -e "Launcher usage: $(c G)./launcher COMMAND COMMAND_ARGS $(c)"
echo -e "$(c 0usBB) COMMANDS: COMMAND DESCRIPTION.$(c)"
echo -e " $(c YsB)start$(c): Start the OSINTBuddy app and tail the logs."
echo -e " $(c YsB)stop$(c): Stop the OSINTBuddy app (or a specific container ./launcher stop janus)."
echo -e " $(c YsB)build$(c): Build the OSINTBuddy app (or a specific container ./launcher build ui)."
echo -e " $(c YsB)restart$(c): Restart the app (or a specific container: ./launcher restart janus)."
echo -e " $(c YsB)api_gen$(c): Generate API client SDK from the backend OpenAPI spec; launch the UI outside of the container"
echo -e " $(c YsB)setup_dev$(c): Create python3 venv and install dev dependencies"
echo -e " $(c YsB)bootstrap$(c): Initialize and download dependencies and check for environment misconfigurations"
echo -e " $(c YsB)debug_send$(c): Upload all logs to https://paste.c-net.org for help with debugging"
echo -e " $(c YsB)cleanup$(c): Remove docker volumes."
echo -e " $(c YsB)exec$(c): Execute commands for a container."
echo -e " $(c YsB)migrate$(c): Generate a migration."
echo -e " $(c YsB)python$(c): Open a python3 shell on the backend."
echo -e " $(c YsB)ui$(c): Stop the UI container and launch the frontend locally."
echo -e " $(c YsB)kill$(c): Kill containers; down the stack."
echo -e " $(c YsB)containers$(c): List the names you can access the containers by"
echo -e " $(c YsB)pkg_update$(c): Update the osintbuddy package locally and in docker from the osintbuddy-plugins repo (used in dev)"
usage_containers
exit 1
}
if [ -z "$OB_CMD" -a "$OB_CMD" != "cleanup" ]; then
usage
exit 0
fi
case "$OB_CMD" in
bootstrap)
./cmd/bootstrap
;;
start)
./cmd/start
;;
restart)
./cmd/restart
;;
stop)
./cmd/stop
;;
build)
./cmd/build
;;
logs)
./cmd/logs
;;
api_gen)
./cmd/api_gen
;;
kill)
./cmd/downkill
;;
ui)
./cmd/ui_dev
;;
debug_send)
./cmd/debug_send
;;
cleanup)
./cmd/stop
./cmd/cleanup
;;
exec)
./cmd/shell
;;
python)
./cmd/python
;;
migrate)
./cmd/migrate
;;
setup_dev)
./cmd/setup_dev
;;
pkg_update)
./cmd/pkg_update
;;
ps)
./cmd/ps
;;
containers)
./usage_containers
;;
show)
./print_access_urls
;;
esac