[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 ...@@ -115,18 +115,22 @@ From inside the `haskell-gargantext/` directory, run
### Multi-User with Graphical User Interface (Server Mode) ### Multi-User with Graphical User Interface (Server Mode)
``` shell ``` 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` 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 ### Command Line Mode tools
#### Simple cooccurrences computation and indexation from a list of Ngrams #### Simple cooccurrences computation and indexation from a list of Ngrams
``` shell ``` 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 ### Analyzing the ngrams table repo
......
...@@ -15,12 +15,11 @@ module CLI.Server where ...@@ -15,12 +15,11 @@ module CLI.Server where
import Data.Version (showVersion) import Data.Version (showVersion)
import CLI.Parsers (settings_p) import CLI.Parsers (settings_p)
import CLI.Types import CLI.Types
import CLI.Worker (runAllWorkers)
import GHC.IO.Encoding (setLocaleEncoding, utf8) import GHC.IO.Encoding (setLocaleEncoding, utf8)
import Gargantext.API (startGargantext) import Gargantext.API (startGargantext)
import Gargantext.API.Admin.EnvTypes (Mode(..)) import Gargantext.API.Admin.EnvTypes (Mode(..))
import Gargantext.Core.Config (gc_worker)
import Gargantext.Core.Config.Types (_SettingsFile) import Gargantext.Core.Config.Types (_SettingsFile)
import Gargantext.Core.Config.Utils (readConfig)
import Gargantext.Prelude import Gargantext.Prelude
import Gargantext.System.Logging (withLogger, logMsg, LogLevel(..), Logger) import Gargantext.System.Logging (withLogger, logMsg, LogLevel(..), Logger)
import Options.Applicative import Options.Applicative
...@@ -32,15 +31,9 @@ serverCLI :: CLIServer -> IO () ...@@ -32,15 +31,9 @@ serverCLI :: CLIServer -> IO ()
serverCLI (CLIS_start serverArgs) = withLogger () $ \ioLogger -> serverCLI (CLIS_start serverArgs) = withLogger () $ \ioLogger ->
startServerCLI ioLogger serverArgs startServerCLI ioLogger serverArgs
serverCLI (CLIS_startAll (ServerArgs { .. })) = withLogger () $ \ioLogger -> do serverCLI (CLIS_startAll serverArgs@(ServerArgs { .. })) = withLogger () $ \ioLogger -> do
cfg <- readConfig server_toml
let ws = cfg ^. gc_worker
withAsync (startServerCLI ioLogger serverArgs) $ \aServer -> do withAsync (startServerCLI ioLogger serverArgs) $ \aServer -> do
forConcurrently_ (_wsDefinitions ws) $ \wd -> do runAllWorkers ioLogger server_toml
withWorker server_toml $ \env -> do
logMsg ioLogger INFO $ "starting worker '" <> _wdName wd <> "' (queue " <> show (_wdQueue wd) <> ")"
withPGMQWorkerCtrlC env wd $ \a _state -> do
wait a
wait aServer wait aServer
serverCLI (CLIS_version) = withLogger () $ \ioLogger -> do serverCLI (CLIS_version) = withLogger () $ \ioLogger -> do
......
...@@ -96,6 +96,7 @@ data CLIRoutes ...@@ -96,6 +96,7 @@ data CLIRoutes
data CLIServer data CLIServer
= CLIS_start ServerArgs = CLIS_start ServerArgs
| CLIS_startAll ServerArgs
| CLIS_version | CLIS_version
deriving (Show, Eq) deriving (Show, Eq)
...@@ -126,20 +127,20 @@ data WorkerStatsArgs = WorkerStatsArgs ...@@ -126,20 +127,20 @@ data WorkerStatsArgs = WorkerStatsArgs
} deriving (Show, Eq) } deriving (Show, Eq)
data CLICmd data CLICmd
= CCMD_clean_csv_corpus = CCMD_admin !AdminArgs
| CCMD_clean_csv_corpus
| CCMD_filter_terms_and_cooc !CorpusFile !TermListFile !OutputFile | CCMD_filter_terms_and_cooc !CorpusFile !TermListFile !OutputFile
| CCMD_obfuscate_db !ObfuscateDBArgs | CCMD_golden_file_diff !GoldenFileDiffArgs
| CCMD_admin !AdminArgs
| CCMD_import !ImportArgs | CCMD_import !ImportArgs
| CCMD_ini !IniArgs | CCMD_ini !IniArgs
| CCMD_init !InitArgs | CCMD_init !InitArgs
| CCMD_invitations !InvitationsArgs | CCMD_invitations !InvitationsArgs
| CCMD_obfuscate_db !ObfuscateDBArgs
| CCMD_phylo !PhyloArgs | CCMD_phylo !PhyloArgs
| CCMD_phylo_profile | CCMD_phylo_profile
| CCMD_upgrade !UpgradeArgs
| CCMD_golden_file_diff !GoldenFileDiffArgs
| CCMD_routes !CLIRoutes | CCMD_routes !CLIRoutes
| CCMD_server !CLIServer | CCMD_server !CLIServer
| CCMD_upgrade !UpgradeArgs
| CCMD_worker !CLIWorker | CCMD_worker !CLIWorker
deriving (Show, Eq) deriving (Show, Eq)
......
...@@ -28,6 +28,7 @@ import Gargantext.Core.Worker.Env (withWorkerEnv) ...@@ -28,6 +28,7 @@ import Gargantext.Core.Worker.Env (withWorkerEnv)
-- import Gargantext.Core.Worker.Jobs (sendJob) -- import Gargantext.Core.Worker.Jobs (sendJob)
-- import Gargantext.Core.Worker.Jobs.Types (Job(Ping)) -- import Gargantext.Core.Worker.Jobs.Types (Job(Ping))
import Gargantext.Prelude import Gargantext.Prelude
import Gargantext.System.Logging (withLogger, logMsg, LogLevel(..), Logger)
import Options.Applicative import Options.Applicative
import Prelude qualified import Prelude qualified
...@@ -66,14 +67,8 @@ workerCLI (CLIW_run (WorkerArgs { .. })) = do ...@@ -66,14 +67,8 @@ workerCLI (CLIW_run (WorkerArgs { .. })) = do
withPGMQWorkerCtrlC env wd $ \a _state -> do withPGMQWorkerCtrlC env wd $ \a _state -> do
-- _ <- runReaderT (sendJob Ping) env -- _ <- runReaderT (sendJob Ping) env
wait a wait a
workerCLI (CLIW_runAll (WorkerAllArgs { .. })) = do workerCLI (CLIW_runAll (WorkerAllArgs { .. })) = withLogger () $ \ioLogger -> do
cfg <- readConfig worker_toml runAllWorkers ioLogger 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_stats (WorkerStatsArgs { .. })) = do workerCLI (CLIW_stats (WorkerStatsArgs { .. })) = do
putStrLn ("worker toml: " <> _SettingsFile ws_toml) putStrLn ("worker toml: " <> _SettingsFile ws_toml)
...@@ -127,3 +122,13 @@ stats_p :: Parser CLIWorker ...@@ -127,3 +122,13 @@ stats_p :: Parser CLIWorker
stats_p = fmap CLIW_stats $ WorkerStatsArgs stats_p = fmap CLIW_stats $ WorkerStatsArgs
<$> settings_p <$> 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 @@ ...@@ -5,4 +5,4 @@
set -e -u set -e -u
echo "Launching Gargantext..." 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