{"id":20827140,"url":"https://github.com/montrealcorpustools/iscan-spade-server","last_synced_at":"2025-07-30T16:10:25.223Z","repository":{"id":45123636,"uuid":"158442066","full_name":"MontrealCorpusTools/iscan-spade-server","owner":"MontrealCorpusTools","description":"Django server set up for the SPADE project","archived":false,"fork":false,"pushed_at":"2022-01-06T22:28:32.000Z","size":50,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-03-12T07:29:39.866Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MontrealCorpusTools.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-11-20T19:39:16.000Z","updated_at":"2024-05-17T16:48:15.000Z","dependencies_parsed_at":"2022-09-22T17:30:55.826Z","dependency_job_id":null,"html_url":"https://github.com/MontrealCorpusTools/iscan-spade-server","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MontrealCorpusTools/iscan-spade-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MontrealCorpusTools%2Fiscan-spade-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MontrealCorpusTools%2Fiscan-spade-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MontrealCorpusTools%2Fiscan-spade-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MontrealCorpusTools%2Fiscan-spade-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MontrealCorpusTools","download_url":"https://codeload.github.com/MontrealCorpusTools/iscan-spade-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MontrealCorpusTools%2Fiscan-spade-server/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267896643,"owners_count":24162483,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-30T02:00:09.044Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-17T23:11:16.279Z","updated_at":"2025-07-30T16:10:25.181Z","avatar_url":"https://github.com/MontrealCorpusTools.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ISCAN SPADE server\nThis is Django server framework for the ISCAN web application used by the SPADE project.\n\n## Documentation\nDocumentation for ISCAN, as well as tutorials, can be found at [here](https://iscan.readthedocs.io/).\n\n## Prerequisites\nISCAN server uses [Docker](https://www.docker.com/what-docker). This containerization means that the only dependency the user must install is Docker itself.\n\n### Preparing Docker\n* Install [Docker for Ubuntu](https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce). It is easiest to install using the *Install from repository* method.\n* Complete the [post-installation instructions](https://docs.docker.com/install/linux/linux-postinstall/) for Docker for Ubuntu. This will make it unnecessary to prepend Docker commands with `sudo`.\n* Install [Docker Compose](https://docs.docker.com/compose/install/), the tool for defining and running multi-container Docker applications.\n\n## Installation\n\nFirst, clone the iscan-server repository to your machine:\n\n``git clone https://github.com/MontrealCorpusTools/iscan-spade-server.git``\n\nIncluded are a `Dockerfile` and a `docker-compose.yml`. In order to build a Docker image from these files, navigate to the root of the repository and run:\n\n``docker-compose build``\n\nThen, run:\n\n``docker-compose up``\n\nThis will launch the containers.\n\n### Development Installation\n\nIf you are intending to develop or make changes to ISCAN itself a few things must be done differently.\n\nFirst, you must also clone the ISCAN repository in the same directory that you cloned your iscan-server directory.\n\n``git clone https://github.com/MontrealCorpusTools/ISCAN.git``\n\nSo, you will have a directory containing the two repos, `ISCAN` and `iscan-spade-server`. Then, just `cd` into the `iscan-spade-server` directory.\n\nTo build the image with development support, run the following command. \n\n``docker-compose build --build-arg BUILD_ENV=\"dev\"``\n\nThis will allow you to make changes in the ISCAN repo directory, and have them reflected in the docker installation.\n\n### Initial migrations\n\nThe first time you use iscan-server, you will need to make database migrations. In another terminal, while the containers are up, run:\n\n``docker-compose run app init``\n\nThe needed migrations to perform will be detected and made.\n\n### Superuser creation\nThe first time you use iscan-server, you will need to set up a username and password to log in with. In another terminal, while the containers are up, run:\n\n``docker-compose run app manage createsuperuser``\n\nThis will begin a prompt that asks you for a username, email address, and password. Once you have filled them out, the prompt will close.\n\nThen, you should be able to log in with your credentials. You should only need to perform this step once; from now on, whenever you start the server, you should be able to log in with your defined username and password. When finished, press :code:`Ctrl+C` to end the current server run.\n\n\n### Settings\n\nCertain aspects of the server require changing settings.\nMost of the settings are set in `/iscan_server/settings/base.py` but it is unlikely you will need to change these.\nWhat you will have to do, however, is edit `/iscan_server/settings/local_settings.py`.\nThere is a template available there by default.\n\nIn order to query the server from remote connections, you must change the `ALLOWED_HOSTS` parameter in the `iscan_server/settings/local_settings.py` to include the hostname of your server. \n\nIf you intend on accessing the server from the internet directly(i.e. not only on a closed network), you should also changed the `SECRET_KEY` in `base.py`.\n## Use and workflow\n\n### Starting and stopping the server\nTo start the server and its containers using the Docker image, run:\n\n``docker-compose up``\n\nIn your web browser, navigate to `localhost:8080`. You should see the I-SCAN web page.\n\nTo stop the server, press `Ctrl+C` only once. The terminal should show a `Gracefully stopping...` message and then exit.\n\n\n### Tests\n\nTo run the automatic tests, run:\n\n``./runtests.sh``\n\n\n### Mounted volumes\n\nThis Docker instance is configured so that the contents of certain directories persist between runs of the server, and so that contents are constant between the local directory and the directory in the container. These local directories, located in the root of the repository, are:\n\n* `polyglot_source/` - the directory containing corpora to be loaded.\n* `polyglot_data/` - the directory where corpus metadata will be stored\n* `pgdb/` - the directory where the front-end code is stored\n* `polyglot_server/` - the directory containing the Django project for the server\n\nChanges you make locally in these folders should persist into the container without needing to re-build the Docker image.\n\n### Cleaning\nThe `docker-compose up` command usefully regenerates fresh containers each time it is run, but old containers can take up space. To clean up containers on your machine, first stop all of them:\n\n```docker-compose stop```\n\nThen, remove them:\n\n``docker-compose rm``\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmontrealcorpustools%2Fiscan-spade-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmontrealcorpustools%2Fiscan-spade-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmontrealcorpustools%2Fiscan-spade-server/lists"}