The application was created using the dotnet SAFE Template. To learn more about the template, see the quick start guide.
On your development machine, you'll need to install the following pre-requisites in order to import your corpora into Glossa and build the application:
None of these are required on your production server if you build a self-contained executable on your development machine (see create_executable.sh
for an example).
If you would rather create a smaller, framework-dependent application (using dotnet run -- Bundle
), you will need the .NET SDK on your server as well (or alternatively run .NET in a Docker container).
After checking out this repository, you will need to create the directory that will contain your corpus definitions:
mkdir -p src/Corpora/corpora
./create_db.sh
Simply exit from the sqlite command line using .quit
or ctrl-d. Then cd
into the create_corpus
directory and follow the instructions in HOWTO_CREATE_CORPUS.MD
to create your first corpus in Glossa.
Note that the src/Corpora
directory and its contents are included in .gitignore
to prevent your corpus-specific code from being included in the main repo.
You may want to initialize a separate git repo in src/Corpora
to keep your corpus definitions under version control.
Before you run the project for the first time only you must install dotnet "local tools" with this command:
dotnet tool restore
To concurrently run the server and the client components in watch mode use the following command:
dotnet run
Then open http://localhost:8080
in your browser.
To run the project in production:
dotnet run -- Bundle
cd deploy
dotnet ./Server.dll
Alternatively, you could create a self-contained executable, which can then be simply copied to the server and run like any other executable without any pre-requisites.
(see create_executable.sh
for an example of how to do this). Note that the target platform does not have to be the same as the develoopment platform,
so you could for instance use a Mac to create an executable for 64-bit Linux.
You will find more documentation about the used F# components at the following places: