[cli] add server start-al cmd, README fixes

parent b81b739e
Pipeline #7060 passed with stages
in 41 minutes and 5 seconds
......@@ -115,18 +115,22 @@ From inside the `haskell-gargantext/` directory, run
### Multi-User with Graphical User Interface (Server Mode)
``` shell
$ ~/.local/bin/stack --docker exec gargantext -- server start -m Prod
$ cabal v2-run gargantext -- server start -m Prod
```
Then you can log in with `user1` / `1resu`
To start server and all workers:
```shell
$ cabal v2-run gargantext -- server start-all -m Prod
```
### Command Line Mode tools
#### Simple cooccurrences computation and indexation from a list of Ngrams
``` shell
$ stack --docker exec gargantext -- CorpusFromGarg.csv ListFromGarg.csv Ouput.json
$ cabal v2-run gargantext -- filter-terms CorpusFromGarg.csv ListFromGarg.csv Ouput.json
```
### Analyzing the ngrams table repo
......
......@@ -15,12 +15,11 @@ module CLI.Server where
import Data.Version (showVersion)
import CLI.Parsers (settings_p)
import CLI.Types
import CLI.Worker (runAllWorkers)
import GHC.IO.Encoding (setLocaleEncoding, utf8)
import Gargantext.API (startGargantext)
import Gargantext.API.Admin.EnvTypes (Mode(..))
import Gargantext.Core.Config (gc_worker)
import Gargantext.Core.Config.Types (_SettingsFile)
import Gargantext.Core.Config.Utils (readConfig)
import Gargantext.Prelude
import Gargantext.System.Logging (withLogger, logMsg, LogLevel(..), Logger)
import Options.Applicative
......@@ -32,15 +31,9 @@ serverCLI :: CLIServer -> IO ()
serverCLI (CLIS_start serverArgs) = withLogger () $ \ioLogger ->
startServerCLI ioLogger serverArgs
serverCLI (CLIS_startAll (ServerArgs { .. })) = withLogger () $ \ioLogger -> do
cfg <- readConfig server_toml
let ws = cfg ^. gc_worker
serverCLI (CLIS_startAll serverArgs@(ServerArgs { .. })) = withLogger () $ \ioLogger -> do
withAsync (startServerCLI ioLogger serverArgs) $ \aServer -> do
forConcurrently_ (_wsDefinitions ws) $ \wd -> do
withWorker server_toml $ \env -> do
logMsg ioLogger INFO $ "starting worker '" <> _wdName wd <> "' (queue " <> show (_wdQueue wd) <> ")"
withPGMQWorkerCtrlC env wd $ \a _state -> do
wait a
runAllWorkers ioLogger server_toml
wait aServer
serverCLI (CLIS_version) = withLogger () $ \ioLogger -> do
......
......@@ -96,6 +96,7 @@ data CLIRoutes
data CLIServer
= CLIS_start ServerArgs
| CLIS_startAll ServerArgs
| CLIS_version
deriving (Show, Eq)
......@@ -126,20 +127,20 @@ data WorkerStatsArgs = WorkerStatsArgs
} deriving (Show, Eq)
data CLICmd
= CCMD_clean_csv_corpus
= CCMD_admin !AdminArgs
| CCMD_clean_csv_corpus
| CCMD_filter_terms_and_cooc !CorpusFile !TermListFile !OutputFile
| CCMD_obfuscate_db !ObfuscateDBArgs
| CCMD_admin !AdminArgs
| CCMD_golden_file_diff !GoldenFileDiffArgs
| CCMD_import !ImportArgs
| CCMD_ini !IniArgs
| CCMD_init !InitArgs
| CCMD_invitations !InvitationsArgs
| CCMD_obfuscate_db !ObfuscateDBArgs
| CCMD_phylo !PhyloArgs
| CCMD_phylo_profile
| CCMD_upgrade !UpgradeArgs
| CCMD_golden_file_diff !GoldenFileDiffArgs
| CCMD_routes !CLIRoutes
| CCMD_server !CLIServer
| CCMD_upgrade !UpgradeArgs
| CCMD_worker !CLIWorker
deriving (Show, Eq)
......
......@@ -28,6 +28,7 @@ import Gargantext.Core.Worker.Env (withWorkerEnv)
-- import Gargantext.Core.Worker.Jobs (sendJob)
-- import Gargantext.Core.Worker.Jobs.Types (Job(Ping))
import Gargantext.Prelude
import Gargantext.System.Logging (withLogger, logMsg, LogLevel(..), Logger)
import Options.Applicative
import Prelude qualified
......@@ -66,14 +67,8 @@ workerCLI (CLIW_run (WorkerArgs { .. })) = do
withPGMQWorkerCtrlC env wd $ \a _state -> do
-- _ <- runReaderT (sendJob Ping) env
wait a
workerCLI (CLIW_runAll (WorkerAllArgs { .. })) = do
cfg <- readConfig worker_toml
let ws = cfg ^. gc_worker
forConcurrently_ (_wsDefinitions ws) $ \wd -> do
withWorkerEnv worker_toml $ \env -> do
putStrLn $ "Starting worker '" <> _wdName wd <> "' (queue " <> show (_wdQueue wd) <> ")"
withPGMQWorkerCtrlC env wd $ \a _state -> do
wait a
workerCLI (CLIW_runAll (WorkerAllArgs { .. })) = withLogger () $ \ioLogger -> do
runAllWorkers ioLogger worker_toml
workerCLI (CLIW_stats (WorkerStatsArgs { .. })) = do
putStrLn ("worker toml: " <> _SettingsFile ws_toml)
......@@ -127,3 +122,13 @@ stats_p :: Parser CLIWorker
stats_p = fmap CLIW_stats $ WorkerStatsArgs
<$> settings_p
runAllWorkers :: Logger IO -> SettingsFile -> IO ()
runAllWorkers ioLogger worker_toml = do
cfg <- readConfig worker_toml
let ws = cfg ^. gc_worker
forConcurrently_ (_wsDefinitions ws) $ \wd -> do
withWorkerEnv worker_toml $ \env -> do
logMsg ioLogger INFO $ "Starting worker '" <> T.unpack (_wdName wd) <> "' (queue " <> show (_wdQueue wd) <> ")"
withPGMQWorkerCtrlC env wd $ \a _state -> do
wait a
......@@ -5,4 +5,4 @@
set -e -u
echo "Launching Gargantext..."
nix-shell --run "cabal run gargantext-server -- --run Prod --toml gargantext-settings.toml"
nix-shell --run "cabal v2-run gargantext -- server start-all --mode Prod --settings-path gargantext-settings.toml"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment