<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.docking.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jocastanon</id>
	<title>DISI - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.docking.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jocastanon"/>
	<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Special:Contributions/Jocastanon"/>
	<updated>2026-04-05T04:09:38Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Search_zinc22.py&amp;diff=16568</id>
		<title>Search zinc22.py</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Search_zinc22.py&amp;diff=16568"/>
		<updated>2025-02-18T20:13:52Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: Jocastanon moved page Search zinc22.py to Init partitioned search.py (aka Search zinc22.py): Added wrapper script for splitting into tranches&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Init partitioned search.py (aka Search zinc22.py)]]&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Init_partitioned_search.py_(aka_Search_zinc22.py)&amp;diff=16567</id>
		<title>Init partitioned search.py (aka Search zinc22.py)</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Init_partitioned_search.py_(aka_Search_zinc22.py)&amp;diff=16567"/>
		<updated>2025-02-18T20:13:52Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: Jocastanon moved page Search zinc22.py to Init partitioned search.py (aka Search zinc22.py): Added wrapper script for splitting into tranches&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Description ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
usage: init_partitioned_search.py [-i] input_file [-o] results_out [--get-vendors] [-s] &lt;br /&gt;
&lt;br /&gt;
search for smiles and vendor codes by zinc22 id&lt;br /&gt;
&lt;br /&gt;
required arguments:&lt;br /&gt;
  input_file            file containing list of zinc ids or vendor codes to look up&lt;br /&gt;
  results_out           destination for output directory&lt;br /&gt;
&lt;br /&gt;
optional arguments:&lt;br /&gt;
  -h, --help            show this help message and exit&lt;br /&gt;
  --vendor-search       look up molecules by vendor code instead of zinc id&lt;br /&gt;
  --get-vendors         get vendor supplier codes associated with zinc id&lt;br /&gt;
  -s                    submit slurm jobs and start the search process, can be omitted if you are only looking to split a list of molecules into tranches&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
init_partitioned_search.py is a script that replaces search_zinc22.py for looking up zinc ids on the zinc22 system in a more efficient manner. The operation is simple- provide a file containing a list of zincids and the script will split the input into tranches for search across all zinc22 databases. &lt;br /&gt;
&lt;br /&gt;
The output format is as follows:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
SMILES ZINC_ID TRANCHE_NAME&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With --get-vendors or --vendor-search the output format looks like this:&lt;br /&gt;
&lt;br /&gt;
SMILES ZINC_ID VENDOR_ID TRANCHE_NAME CATALOG&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Meaning the script will find all vendor information and smiles associated with the provided zinc ids or vendor codes.&lt;br /&gt;
&lt;br /&gt;
=== Location ===&lt;br /&gt;
&lt;br /&gt;
You can activate the environment, using &lt;br /&gt;
  source /nfs/soft/zinc22/search_zinc/miniconda/bin/activate zinc22_search &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Side note about slow queries&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Depending on the molecules you happen to be looking up, your search may go by very quickly, or somewhat slowly. Smaller molecules tend to look up very quickly, while larger molecules take longer to find. We&#039;re working on it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tracking Progress&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After submitting the search, you can look at the slurm queue to see the status of your job. Jobs will be labeled &#039;search_zinc22&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Using Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When all jobs are done, the output folder will have input files, log files, and .results files. If results files are missing for a tranche, refer to the logs to learn more or contact the JJI team for troubleshooting. You can merge all results together in a file with a simple command&lt;br /&gt;
  cat *.results &amp;gt; yourresultsfile.txt&lt;br /&gt;
&lt;br /&gt;
=== Usage w/ Bash on BKS cluster ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
source /nfs/soft/zinc22/search_zinc/miniconda/bin/activate /nfs/soft/zinc22/search_zinc/miniconda/envs/zinc22_search&lt;br /&gt;
python /nfs/soft/zinc22/search_zinc/init_partitioned_search.py -i /path/to/input/file -o /path/to/output/folder -s&lt;br /&gt;
python /nfs/soft/zinc22/search_zinc/init_partitioned_search.py -i /path/to/input/file -o /path/to/output/folder -s --get_vendors&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
=== Usage w/ Csh on BKS cluster ===&lt;br /&gt;
&lt;br /&gt;
This version of the tool is currently only compatible with Bash. &lt;br /&gt;
&lt;br /&gt;
=== Dealing with NULL ===&lt;br /&gt;
Sometimes a ZINC ID will fail to look up. This could be because a server is down (the script will notify you if this is the case), or because the ID is missing from the system for some reason. In this case, it may be helpful to separate the molecules that didn&#039;t look up from the molecules that did. You may want to save them for later when the servers come back online, or to run a deeper search with comb_legacy_files.py (more on this below).&lt;br /&gt;
&lt;br /&gt;
How to:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[env]$ cat legitimate_ids.txt &amp;gt; input.txt&lt;br /&gt;
[env]$ echo ZINCzz00ZZZZZZZZ &amp;gt;&amp;gt; input.txt&lt;br /&gt;
[env]$ echo ZINCyy00AAAAAAAA &amp;gt;&amp;gt; input.txt&lt;br /&gt;
[env]$ echo ZINCxx00BBBBBBBB &amp;gt;&amp;gt; input.txt&lt;br /&gt;
[env]$ python search_zinc.py input.txt output.txt&lt;br /&gt;
Searching Zinc22:  |XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX| 100.0%  0.00s 23/23 complete!&lt;br /&gt;
[env]$ grep &amp;quot;_null_&amp;quot; output.txt&lt;br /&gt;
_null_ ZINCzz00ZZZZZZZZ H33P270&lt;br /&gt;
_null_ ZINCyy00AAAAAAAA H34P280&lt;br /&gt;
_null_ ZINCxx00BBBBBBBB H35P290&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
search_zinc.py will not omit IDs that don&#039;t look up from the output, instead it will return the zinc id with &amp;quot;_null_&amp;quot; in every other field. Therefore we can use grep to filter our results.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[env]$ grep &amp;quot;_null_&amp;quot; output.txt &amp;gt; missing.txt&lt;br /&gt;
[env]$ grep -v &amp;quot;_null_&amp;quot; output.txt &amp;gt; found.txt&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It should be very infrequent that ZINC IDs don&#039;t look up, but if this happens you can use the following script:&lt;br /&gt;
&lt;br /&gt;
=== comb_legacy_files.py ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
python3 /mnt/nfs/home/xyz/btingle/bin/2dload.testing/utils-2d/tin/misc/comb_legacy_files.py [INPUT_ZINC_IDS_FILE]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You don&#039;t need to source any particular python 3 environment for this script, but the environment used for search_zinc22.py will work just fine here.&lt;br /&gt;
&lt;br /&gt;
This script will comb through our deprecated files and attempt to locate your ZINC IDs there. This script will create a file called &amp;quot;result&amp;quot; in your current directory containing all the smiles found.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re looking from vendor information, you can look up the SMILES you get back in arthor/smallworld sets to find vendor codes. Functionality is planned in search_zinc22.py for looking up by SMILES, but not implemented yet.&lt;br /&gt;
&lt;br /&gt;
If after this you&#039;re STILL unable to find your zinc ids, you can send them to our development team and we will find them for you.&lt;br /&gt;
&lt;br /&gt;
Email ben@tingle.org, ccing khtang015@gmail.com and josecastanon4@gmail.com. Include your missing file as an attachment.&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Init_partitioned_search.py_(aka_Search_zinc22.py)&amp;diff=16475</id>
		<title>Init partitioned search.py (aka Search zinc22.py)</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Init_partitioned_search.py_(aka_Search_zinc22.py)&amp;diff=16475"/>
		<updated>2024-12-03T21:25:30Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Description ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
usage: init_partitioned_search.py [-i] input_file [-o] results_out [--get-vendors] [-s] &lt;br /&gt;
&lt;br /&gt;
search for smiles and vendor codes by zinc22 id&lt;br /&gt;
&lt;br /&gt;
required arguments:&lt;br /&gt;
  input_file            file containing list of zinc ids or vendor codes to look up&lt;br /&gt;
  results_out           destination for output directory&lt;br /&gt;
&lt;br /&gt;
optional arguments:&lt;br /&gt;
  -h, --help            show this help message and exit&lt;br /&gt;
  --vendor-search       look up molecules by vendor code instead of zinc id&lt;br /&gt;
  --get-vendors         get vendor supplier codes associated with zinc id&lt;br /&gt;
  -s                    submit slurm jobs and start the search process, can be omitted if you are only looking to split a list of molecules into tranches&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
init_partitioned_search.py is a script that replaces search_zinc22.py for looking up zinc ids on the zinc22 system in a more efficient manner. The operation is simple- provide a file containing a list of zincids and the script will split the input into tranches for search across all zinc22 databases. &lt;br /&gt;
&lt;br /&gt;
The output format is as follows:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
SMILES ZINC_ID TRANCHE_NAME&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With --get-vendors or --vendor-search the output format looks like this:&lt;br /&gt;
&lt;br /&gt;
SMILES ZINC_ID VENDOR_ID TRANCHE_NAME CATALOG&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Meaning the script will find all vendor information and smiles associated with the provided zinc ids or vendor codes.&lt;br /&gt;
&lt;br /&gt;
=== Location ===&lt;br /&gt;
&lt;br /&gt;
You can activate the environment, using &lt;br /&gt;
  source /nfs/soft/zinc22/search_zinc/miniconda/bin/activate zinc22_search &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Side note about slow queries&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Depending on the molecules you happen to be looking up, your search may go by very quickly, or somewhat slowly. Smaller molecules tend to look up very quickly, while larger molecules take longer to find. We&#039;re working on it.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tracking Progress&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After submitting the search, you can look at the slurm queue to see the status of your job. Jobs will be labeled &#039;search_zinc22&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Using Output&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When all jobs are done, the output folder will have input files, log files, and .results files. If results files are missing for a tranche, refer to the logs to learn more or contact the JJI team for troubleshooting. You can merge all results together in a file with a simple command&lt;br /&gt;
  cat *.results &amp;gt; yourresultsfile.txt&lt;br /&gt;
&lt;br /&gt;
=== Usage w/ Bash on BKS cluster ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
source /nfs/soft/zinc22/search_zinc/miniconda/bin/activate /nfs/soft/zinc22/search_zinc/miniconda/envs/zinc22_search&lt;br /&gt;
python /nfs/soft/zinc22/search_zinc/init_partitioned_search.py -i /path/to/input/file -o /path/to/output/folder -s&lt;br /&gt;
python /nfs/soft/zinc22/search_zinc/init_partitioned_search.py -i /path/to/input/file -o /path/to/output/folder -s --get_vendors&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
=== Usage w/ Csh on BKS cluster ===&lt;br /&gt;
&lt;br /&gt;
This version of the tool is currently only compatible with Bash. &lt;br /&gt;
&lt;br /&gt;
=== Dealing with NULL ===&lt;br /&gt;
Sometimes a ZINC ID will fail to look up. This could be because a server is down (the script will notify you if this is the case), or because the ID is missing from the system for some reason. In this case, it may be helpful to separate the molecules that didn&#039;t look up from the molecules that did. You may want to save them for later when the servers come back online, or to run a deeper search with comb_legacy_files.py (more on this below).&lt;br /&gt;
&lt;br /&gt;
How to:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[env]$ cat legitimate_ids.txt &amp;gt; input.txt&lt;br /&gt;
[env]$ echo ZINCzz00ZZZZZZZZ &amp;gt;&amp;gt; input.txt&lt;br /&gt;
[env]$ echo ZINCyy00AAAAAAAA &amp;gt;&amp;gt; input.txt&lt;br /&gt;
[env]$ echo ZINCxx00BBBBBBBB &amp;gt;&amp;gt; input.txt&lt;br /&gt;
[env]$ python search_zinc.py input.txt output.txt&lt;br /&gt;
Searching Zinc22:  |XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX| 100.0%  0.00s 23/23 complete!&lt;br /&gt;
[env]$ grep &amp;quot;_null_&amp;quot; output.txt&lt;br /&gt;
_null_ ZINCzz00ZZZZZZZZ H33P270&lt;br /&gt;
_null_ ZINCyy00AAAAAAAA H34P280&lt;br /&gt;
_null_ ZINCxx00BBBBBBBB H35P290&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
search_zinc.py will not omit IDs that don&#039;t look up from the output, instead it will return the zinc id with &amp;quot;_null_&amp;quot; in every other field. Therefore we can use grep to filter our results.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[env]$ grep &amp;quot;_null_&amp;quot; output.txt &amp;gt; missing.txt&lt;br /&gt;
[env]$ grep -v &amp;quot;_null_&amp;quot; output.txt &amp;gt; found.txt&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It should be very infrequent that ZINC IDs don&#039;t look up, but if this happens you can use the following script:&lt;br /&gt;
&lt;br /&gt;
=== comb_legacy_files.py ===&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
python3 /mnt/nfs/home/xyz/btingle/bin/2dload.testing/utils-2d/tin/misc/comb_legacy_files.py [INPUT_ZINC_IDS_FILE]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You don&#039;t need to source any particular python 3 environment for this script, but the environment used for search_zinc22.py will work just fine here.&lt;br /&gt;
&lt;br /&gt;
This script will comb through our deprecated files and attempt to locate your ZINC IDs there. This script will create a file called &amp;quot;result&amp;quot; in your current directory containing all the smiles found.&lt;br /&gt;
&lt;br /&gt;
If you&#039;re looking from vendor information, you can look up the SMILES you get back in arthor/smallworld sets to find vendor codes. Functionality is planned in search_zinc22.py for looking up by SMILES, but not implemented yet.&lt;br /&gt;
&lt;br /&gt;
If after this you&#039;re STILL unable to find your zinc ids, you can send them to our development team and we will find them for you.&lt;br /&gt;
&lt;br /&gt;
Email ben@tingle.org, ccing khtang015@gmail.com and josecastanon4@gmail.com. Include your missing file as an attachment.&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16458</id>
		<title>ZINC20 Warehousing Scripts</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16458"/>
		<updated>2024-11-26T00:37:52Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These scripts are used to update Zinc20 Molecules and their catalog information. &lt;br /&gt;
&lt;br /&gt;
== Source Python environment before running ==&lt;br /&gt;
 source /nfs/home/s_mar/miniconda3/bin/activate&lt;br /&gt;
&lt;br /&gt;
== Updating Catalog Information==&lt;br /&gt;
This script will update the substance table&#039;s purchasable, free, bb, purchasable_since columns.&lt;br /&gt;
  python /nfs/home/s_mar/warehouse.py -s start -e end -d delta -m update-catitem&lt;br /&gt;
&lt;br /&gt;
== Updating Reactivity Information==&lt;br /&gt;
This script will update the substance table&#039;s reactive column.&lt;br /&gt;
  python /nfs/home/s_mar/warehouse.py -p &#039;&#039;&#039;partition&#039;&#039;&#039; -m update-subpat&lt;br /&gt;
&lt;br /&gt;
== Updating Fingerprint Information==&lt;br /&gt;
This script will update fingerprints and assign them to the respective subtance.&lt;br /&gt;
  python /nfs/home/s_mar/warehouse.py -su &#039;&#039;&#039;subset&#039;&#039;&#039; -m update-fingerprints&lt;br /&gt;
&lt;br /&gt;
Available Subsets:&lt;br /&gt;
  -interesting&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16414</id>
		<title>ZINC20 Warehousing Scripts</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16414"/>
		<updated>2024-11-15T21:04:43Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: /* Updating Reactivity Information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These scripts are used to update Zinc20 Molecules and their catalog information. &lt;br /&gt;
&lt;br /&gt;
== Source Python environment before running ==&lt;br /&gt;
 source /nfs/home/s_mar/miniconda3/bin/activate&lt;br /&gt;
&lt;br /&gt;
== Updating Catalog Information==&lt;br /&gt;
This script will update the substance table&#039;s purchasable, free, bb, purchasable_since columns.&lt;br /&gt;
  python /nfs/home/s_mar/warehouse.py -s start -e end -d delta -m update-catitem&lt;br /&gt;
&lt;br /&gt;
== Updating Reactivity Information==&lt;br /&gt;
This script will update the substance table&#039;s reactive column.&lt;br /&gt;
  python /nfs/home/s_mar/warehouse.py -p &#039;&#039;&#039;partition&#039;&#039;&#039; -m update-subpat&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16408</id>
		<title>ZINC20 Warehousing Scripts</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16408"/>
		<updated>2024-11-12T22:21:55Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: /* Updating Reactivity Information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These scripts are used to update Zinc20 Molecules and their catalog information. &lt;br /&gt;
&lt;br /&gt;
== Source Python environment before running ==&lt;br /&gt;
 source /nfs/home/s_mar/miniconda3/bin/activate&lt;br /&gt;
&lt;br /&gt;
== Updating Catalog Information==&lt;br /&gt;
This script will update the substance table&#039;s purchasable, free, bb, purchasable_since columns.&lt;br /&gt;
  python /nfs/home/s_mar/warehouse.py -s start -e end -d delta -m update-catitem&lt;br /&gt;
&lt;br /&gt;
== Updating Reactivity Information==&lt;br /&gt;
This script will update the substance table&#039;s reactive column.&lt;br /&gt;
  python /nfs/home/s_mar/warehouse.py -s start -e end -d delta -m update-subpat&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16407</id>
		<title>ZINC20 Warehousing Scripts</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16407"/>
		<updated>2024-11-12T22:21:41Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These scripts are used to update Zinc20 Molecules and their catalog information. &lt;br /&gt;
&lt;br /&gt;
== Source Python environment before running ==&lt;br /&gt;
 source /nfs/home/s_mar/miniconda3/bin/activate&lt;br /&gt;
&lt;br /&gt;
== Updating Catalog Information==&lt;br /&gt;
This script will update the substance table&#039;s purchasable, free, bb, purchasable_since columns.&lt;br /&gt;
  python /nfs/home/s_mar/warehouse.py -s start -e end -d delta -m update-catitem&lt;br /&gt;
&lt;br /&gt;
== Updating Reactivity Information==&lt;br /&gt;
This script will update the substance table&#039;s reactive column.&lt;br /&gt;
  python /nfs/home/s_mar/warehouse.py -s start -e end -d delta -m update-catitem&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16404</id>
		<title>ZINC20 Warehousing Scripts</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16404"/>
		<updated>2024-11-12T02:50:34Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These scripts are used to update Zinc20 Molecules and their catalog information. &lt;br /&gt;
&lt;br /&gt;
== Source Python environment before running ==&lt;br /&gt;
 source /nfs/home/s_mar/warehousing/bin/activate&lt;br /&gt;
&lt;br /&gt;
== Updating Catalog Information==&lt;br /&gt;
&lt;br /&gt;
This script will update the substance table&#039;s purchasable, free, bb, purchasable_since columns.&lt;br /&gt;
  python /nfs/home/s_mar/warehouse.py -s start -e end -d delta -m update-catitem&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16352</id>
		<title>ZINC20 Warehousing Scripts</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16352"/>
		<updated>2024-10-18T22:18:44Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: /* Updating Catalog Information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These scripts are used to update Zinc20 Molecules and their catalog information. &lt;br /&gt;
&lt;br /&gt;
== Source Python environment before running ==&lt;br /&gt;
 source /nfs/home/s_mar/warehousing/bin/activate&lt;br /&gt;
&lt;br /&gt;
== Updating Catalog Information==&lt;br /&gt;
&lt;br /&gt;
This script will update the substance table&#039;s purchasable, free, bb, purchasable_since columns.&lt;br /&gt;
  python /nfs/home/s_mar/warehouse.py &#039;&#039;&#039;start end delta&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16351</id>
		<title>ZINC20 Warehousing Scripts</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16351"/>
		<updated>2024-10-18T22:18:33Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: /* Updating Catalog Information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These scripts are used to update Zinc20 Molecules and their catalog information. &lt;br /&gt;
&lt;br /&gt;
== Source Python environment before running ==&lt;br /&gt;
 source /nfs/home/s_mar/warehousing/bin/activate&lt;br /&gt;
&lt;br /&gt;
== Updating Catalog Information==&lt;br /&gt;
&lt;br /&gt;
* This script will update the substance table&#039;s purchasable, free, bb, purchasable_since columns.&lt;br /&gt;
  python /nfs/home/s_mar/warehouse.py &#039;&#039;&#039;start end delta&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16350</id>
		<title>ZINC20 Warehousing Scripts</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16350"/>
		<updated>2024-10-18T22:18:23Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: /* Source Python environment before running */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These scripts are used to update Zinc20 Molecules and their catalog information. &lt;br /&gt;
&lt;br /&gt;
== Source Python environment before running ==&lt;br /&gt;
 source /nfs/home/s_mar/warehousing/bin/activate&lt;br /&gt;
&lt;br /&gt;
== Updating Catalog Information==&lt;br /&gt;
&lt;br /&gt;
* This script will update the substance table&#039;s purchasable, free, bb, purchasable_since columns.&lt;br /&gt;
  python /nfs/home/s_mar/warehousing.py &#039;&#039;&#039;start end delta&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16349</id>
		<title>ZINC20 Warehousing Scripts</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16349"/>
		<updated>2024-10-18T22:16:04Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These scripts are used to update Zinc20 Molecules and their catalog information. &lt;br /&gt;
&lt;br /&gt;
== Source Python environment before running ==&lt;br /&gt;
&lt;br /&gt;
== Updating Catalog Information==&lt;br /&gt;
&lt;br /&gt;
* This script will update the substance table&#039;s purchasable, free, bb, purchasable_since columns.&lt;br /&gt;
  python /nfs/home/s_mar/warehousing.py &#039;&#039;&#039;start end delta&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16348</id>
		<title>ZINC20 Warehousing Scripts</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16348"/>
		<updated>2024-10-18T22:12:30Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These scripts are used to update Zinc20 Molecules and their catalog information. &lt;br /&gt;
&lt;br /&gt;
== Updating Catalog Information==&lt;br /&gt;
&lt;br /&gt;
* This script will update the substance table&#039;s purchasable, free, bb, purchasable_since columns.&lt;br /&gt;
  python /nfs/home/s_mar/warehousing.py &#039;&#039;&#039;start end delta&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16347</id>
		<title>ZINC20 Warehousing Scripts</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16347"/>
		<updated>2024-10-18T22:10:32Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;mainpage&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;!--&lt;br /&gt;
These scripts are used to update Zinc20 Molecules and their catalog information. &lt;br /&gt;
&lt;br /&gt;
== Updating Catalog Information==&lt;br /&gt;
&lt;br /&gt;
* This script will update the substance table&#039;s purchasable, free, bb, purchasable_since columns.&lt;br /&gt;
  python /nfs/home/s_mar/warehousing.py &#039;&#039;&#039;start end delta&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC20Warehousing_Scripts&amp;diff=16346</id>
		<title>ZINC20Warehousing Scripts</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC20Warehousing_Scripts&amp;diff=16346"/>
		<updated>2024-10-18T22:06:50Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: Jocastanon moved page ZINC20Warehousing Scripts to ZINC20 Warehousing Scripts&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[ZINC20 Warehousing Scripts]]&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16345</id>
		<title>ZINC20 Warehousing Scripts</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16345"/>
		<updated>2024-10-18T22:06:50Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: Jocastanon moved page ZINC20Warehousing Scripts to ZINC20 Warehousing Scripts&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;mainpage&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;!--&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC15_Warehousing_Scripts&amp;diff=16344</id>
		<title>ZINC15 Warehousing Scripts</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC15_Warehousing_Scripts&amp;diff=16344"/>
		<updated>2024-10-18T22:06:43Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: Jocastanon moved page ZINC15 Warehousing Scripts to ZINC20Warehousing Scripts: Accidentally tagged as Zinc15&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[ZINC20Warehousing Scripts]]&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16343</id>
		<title>ZINC20 Warehousing Scripts</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16343"/>
		<updated>2024-10-18T22:06:43Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: Jocastanon moved page ZINC15 Warehousing Scripts to ZINC20Warehousing Scripts: Accidentally tagged as Zinc15&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;mainpage&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;!--&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16342</id>
		<title>ZINC20 Warehousing Scripts</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=ZINC20_Warehousing_Scripts&amp;diff=16342"/>
		<updated>2024-10-18T22:05:18Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: Created page with &amp;quot;&amp;lt;div id=&amp;quot;mainpage&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;!--&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;mainpage&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;!--&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Curating_AMIS&amp;diff=16206</id>
		<title>Curating AMIS</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Curating_AMIS&amp;diff=16206"/>
		<updated>2024-06-21T20:33:14Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Running Application==&lt;br /&gt;
AMIS source code lives in gitlab &lt;br /&gt;
&lt;br /&gt;
http://gitlab.docking.org/mar/AMIS.git&lt;br /&gt;
&lt;br /&gt;
The application is automatically deployed using Gitlab&#039;s CI/CD pipeline. The app currently runs on n-9-38:5066.&lt;br /&gt;
&lt;br /&gt;
==Restarting Application==&lt;br /&gt;
Log into n-9-38 and run&lt;br /&gt;
&lt;br /&gt;
sudo docker restart amis&lt;br /&gt;
&lt;br /&gt;
or alternatively, go to https://gitlab.docking.org/mar/AMIS/-/pipelines and click &#039;run pipeline&#039;. Currently, the dev branch is being used, so select that branch before deploying.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:AMIS]]&lt;br /&gt;
[[Category:Curator]]&lt;br /&gt;
[[Category:Mar]]&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cartblanche22_Build_Instructions&amp;diff=16197</id>
		<title>Cartblanche22 Build Instructions</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cartblanche22_Build_Instructions&amp;diff=16197"/>
		<updated>2024-06-18T19:41:03Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Development environment inside cluster==&lt;br /&gt;
&lt;br /&gt;
* Clone repo&lt;br /&gt;
  Git clone https://gitlab.docking.org/chinzo/molecule-shopping-cart&lt;br /&gt;
  Cd molecule-shopping-cart&lt;br /&gt;
* Create conda environment with python 3.7, install dependencies&lt;br /&gt;
  conda env create -f environment.yml&lt;br /&gt;
  conda activate cartblanche&lt;br /&gt;
&lt;br /&gt;
* Start application&lt;br /&gt;
  ./boot-test.sh&lt;br /&gt;
&lt;br /&gt;
== Deployment Information ==&lt;br /&gt;
&#039;&#039;&#039;Gitlab Deployment Stages&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Production builds are distributed among 3 machines&lt;br /&gt;
    - epyc2&lt;br /&gt;
    - n-9-38&lt;br /&gt;
    - n-1-18&lt;br /&gt;
&lt;br /&gt;
The first stage will build/update the current docker image to the gitlab server running on n-9-22. On the web interface, this is in the cartblanche repo under &#039;Packages &amp;amp; Registries&#039;.&lt;br /&gt;
&lt;br /&gt;
Finally, the docker image is pulled in each of the three servers and restarted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Useful Commands&#039;&#039;&#039; (Use these in the respective server to debug):&lt;br /&gt;
  sudo docker restart cartblanche22 (restart the docker container)&lt;br /&gt;
  sudo docker logs cartblanche22 (view app logs)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Some troubleshooting tips:&#039;&#039;&#039;&lt;br /&gt;
Cartblanche relies on other outside services (smallworld, arthur, databases)  so it’s good to check the status of those before looking into the code.&lt;br /&gt;
&lt;br /&gt;
For smallworld, check the status of api calls, or [https://sw.docking.org/search/view/?hlid=19842&amp;amp;draw=6&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=24&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1654029670029 run a sample query. ]&lt;br /&gt;
&lt;br /&gt;
For arthor, check the status of api class, or [https://arthor.docking.org//dt/ZINC-All-19Q4-1.4B/search?query=CC&amp;amp;type=Substructure&amp;amp;draw=2&amp;amp;start=0&amp;amp;length=80&amp;amp;flags=6144&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=alignment&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=false&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=sim&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=false&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false run a sample query].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For search errors (zincid, smiles, vendor), the docker app logs are usually very informative.&lt;br /&gt;
&lt;br /&gt;
It is also useful to see the status of the redis and redis-sentinel services on each of those machines.&lt;br /&gt;
&lt;br /&gt;
There are three redis databases, one main and two backups. If the main db goes down, one of the backups becomes main. When the old main goes back up, it becomes a backup database.&lt;br /&gt;
&lt;br /&gt;
== Deployment Process ==&lt;br /&gt;
Deployment is as simple as pushing changes to the respective branch. A docker image will be created with the new version of the code, which will then replace the current version. &lt;br /&gt;
To redeploy manually, go to https://gitlab.docking.org/chinzo/molecule-shopping-cart/-/pipelines/new&lt;br /&gt;
&lt;br /&gt;
== Setting up Auto-Deployment ==&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions on setting up a new gitlab runner, [https://gitlab.docking.org/admin/runners found here.]&lt;br /&gt;
&lt;br /&gt;
* Register the runner with the credentials provided in the link above.&lt;br /&gt;
&lt;br /&gt;
* Set ‘shell’ as the executor for the runner when prompted.&lt;br /&gt;
&lt;br /&gt;
* After configuration, the gitlab-runner config found in /etc/gitlab-runner/config.toml should look something like this: &lt;br /&gt;
&lt;br /&gt;
  oncurrent = 1&lt;br /&gt;
  check_interval = 0&lt;br /&gt;
  [session_server]&lt;br /&gt;
    session_timeout = 1800&lt;br /&gt;
  [[runners]]&lt;br /&gt;
    name = &amp;quot;cartblanche n-1-17&amp;quot;&lt;br /&gt;
    url = &amp;quot;http://gitlab.docking.org/&amp;quot;&lt;br /&gt;
    token = &amp;quot;Lvp2X3zRFAN_JQuVZK3y&amp;quot;&lt;br /&gt;
    privileged = true&lt;br /&gt;
    executor = &amp;quot;shell&amp;quot;&lt;br /&gt;
    builds_dir = &amp;quot;/home/cartblanche&amp;quot;&lt;br /&gt;
    [runners.custom_build_dir]&lt;br /&gt;
    [runners.docker]&lt;br /&gt;
      privileged = true&lt;br /&gt;
      disable_cache = false&lt;br /&gt;
      cache_dir = &amp;quot;cache&amp;quot;&lt;br /&gt;
     [runners.cache]&lt;br /&gt;
     [runners.cache.s3]&lt;br /&gt;
     [runners.cache.gcs]&lt;br /&gt;
     [runners.cache.azure]&lt;br /&gt;
&lt;br /&gt;
Return to https://gitlab.docking.org/admin/runners, where the new runner will be displayed. Edit the runner’s tags to describe what the runner will be deploying. For example, the test server has the tag ‘cartblanche-dev’ and the production server has ‘cartblanche22’. &lt;br /&gt;
Once the tag is set, a new job will need to be added to the gitlab deployment script to deploy the correct branch to the correct machine. https://gitlab.docking.org/chinzo/molecule-shopping-cart/-/blob/master/.gitlab-ci.yml &lt;br /&gt;
&lt;br /&gt;
A sample job will look like so:&lt;br /&gt;
&lt;br /&gt;
  services:&lt;br /&gt;
    - redis:latest&lt;br /&gt;
  &#039;&#039;&#039;deploy-dev&#039;&#039;&#039; job:&lt;br /&gt;
      &#039;&#039;&#039;only:&lt;br /&gt;
          - dev&#039;&#039;&#039;&lt;br /&gt;
      stage: deploy&lt;br /&gt;
      services:&lt;br /&gt;
          - redis:latest&lt;br /&gt;
      &#039;&#039;&#039;tags:&lt;br /&gt;
          - cartblanche-dev&#039;&#039;&#039;&lt;br /&gt;
      script:&lt;br /&gt;
          - docker login ${GITLAB_REGISTRY_URL} -u ${GITLAB_REGISTRY_USER} -p ${GITLAB_REGISTRY_PASS}&lt;br /&gt;
          - docker pull ${GITLAB_REGISTRY_URL}/mar/cartblanche22&lt;br /&gt;
          - docker stop ${CI_PROJECT_NAME}&lt;br /&gt;
          - docker run --net cartblanche --name redis -d redis&lt;br /&gt;
          - docker run --net cartblanche -v /nfs/db2/smallworld_anon_21Q4:/nfs/db3/private_smallworld_4th_gen/anon&lt;br /&gt;
                     -v /export/db4/smallworld-java:/export/db4/smallworld-java&lt;br /&gt;
                     -v /nfs/db3/private_smallworld_4th_gen/smallworld.cfg:/nfs/db3/private_smallworld_4th_gen/smallworld.cfg&lt;br /&gt;
                     -v /nfs/db3/private_smallworld_4th_gen/maps:/nfs/db3/private_smallworld_4th_gen/maps&lt;br /&gt;
                     --name ${CI_PROJECT_NAME} -d -p &#039;&#039;&#039;0.0.0.0:5068&#039;&#039;&#039;:5000 ${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-0.1.${CI_JOB_ID}&lt;br /&gt;
&lt;br /&gt;
* The name ‘deploy-dev’ refers to the job name. &lt;br /&gt;
&lt;br /&gt;
* &#039;only: -dev&#039; refers to the script only deploying the dev branch. More branches can be added to deploy pushes to different branches to the same machine. &lt;br /&gt;
&lt;br /&gt;
* &#039;tags: -cartblanche-dev&#039; refers to the job tags, which determines which machine will take care of that deployment job. This can be changed to the tag that was set up earlier. You can also add multiple tags to deploy the same branch (or branches) to multiple machines at the same time.&lt;br /&gt;
&lt;br /&gt;
* 0.0.0.0:5068 refers to the port that points to the application.&lt;br /&gt;
&lt;br /&gt;
[[Category:Cartblanche]]&lt;br /&gt;
[[Category:Docker]]&lt;br /&gt;
[[Category:Mar]]&lt;br /&gt;
[[Category:ZINC22]]&lt;br /&gt;
[[Category:Internal]]&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cartblanche22_Build_Instructions&amp;diff=16196</id>
		<title>Cartblanche22 Build Instructions</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cartblanche22_Build_Instructions&amp;diff=16196"/>
		<updated>2024-06-18T19:40:53Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Development environment inside cluster==&lt;br /&gt;
&lt;br /&gt;
* Clone repo&lt;br /&gt;
  Git clone https://gitlab.docking.org/chinzo/molecule-shopping-cart&lt;br /&gt;
  Cd molecule-shopping-cart&lt;br /&gt;
* Create conda environment with python 3.7, install dependencies&lt;br /&gt;
  conda env create -f environment.yml&lt;br /&gt;
  conda activate cartblanche&lt;br /&gt;
&lt;br /&gt;
* Start application&lt;br /&gt;
  ./boot-test.sh&lt;br /&gt;
&lt;br /&gt;
== Deployment Information ==&lt;br /&gt;
&#039;&#039;&#039;Gitlab Deployment Stages&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Production builds are distributed among 3 machines&lt;br /&gt;
    - epyc2&lt;br /&gt;
    - n-9-38&lt;br /&gt;
    - n-1-18&lt;br /&gt;
&lt;br /&gt;
The first stage will build/update the current docker image to the gitlab server running on n-9-22. On the web interface, this is in the cartblanche repo under &#039;Packages &amp;amp; Registries&#039;.&lt;br /&gt;
&lt;br /&gt;
Finally, the docker image is pulled in each of the three servers and restarted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Useful Commands&#039;&#039;&#039; (Use these in the respective server to debug):&lt;br /&gt;
  sudo docker restart cartblanche22 (restart the docker container)&lt;br /&gt;
  sudo docker logs cartblanche22 (view app logs)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Some troubleshooting tips:&#039;&#039;&#039;&lt;br /&gt;
Cartblanche relies on other outside services (smallworld, arthur, databases)  so it’s good to check the status of those before looking into the code.&lt;br /&gt;
&lt;br /&gt;
For smallworld, check the status of api calls, or [https://sw.docking.org/search/view/?hlid=19842&amp;amp;draw=6&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=24&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1654029670029 run a sample query. ]&lt;br /&gt;
&lt;br /&gt;
For arthor, check the status of api class, or [https://arthor.docking.org//dt/ZINC-All-19Q4-1.4B/search?query=CC&amp;amp;type=Substructure&amp;amp;draw=2&amp;amp;start=0&amp;amp;length=80&amp;amp;flags=6144&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=alignment&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=false&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=sim&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=false&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false run a sample query].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For search errors (zincid, smiles, vendor), the docker app logs are usually very informative.&lt;br /&gt;
&lt;br /&gt;
It is also useful to see the status of the redis and redis-sentinel services on each of those machines.&lt;br /&gt;
&lt;br /&gt;
There are three redis databases, one main and two backups. If the main db goes down, one of the backups becomes main. When the old main goes back up, it becomes a backup database.&lt;br /&gt;
&lt;br /&gt;
== Deployment Process ==&lt;br /&gt;
Deployment is as simple as pushing changes to the respective branch. A docker image will be created with the new version of the code, which will then replace the current version. &lt;br /&gt;
To redeploy manually, go to https://gitlab.docking.org/chinzo/molecule-shopping-cart/-/pipelines/new&lt;br /&gt;
&lt;br /&gt;
== Setting up Auto-Deployment ==&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions on setting up a new gitlab runner, [https://gitlab.docking.org/admin/runners found here.]&lt;br /&gt;
&lt;br /&gt;
* Register the runner with the credentials provided in the link above.&lt;br /&gt;
&lt;br /&gt;
* Set ‘shell’ as the executor for the runner when prompted.&lt;br /&gt;
&lt;br /&gt;
* After configuration, the gitlab-runner config found in /etc/gitlab-runner/config.toml should look something like this: &lt;br /&gt;
&lt;br /&gt;
  oncurrent = 1&lt;br /&gt;
  check_interval = 0&lt;br /&gt;
  [session_server]&lt;br /&gt;
    session_timeout = 1800&lt;br /&gt;
  [[runners]]&lt;br /&gt;
    name = &amp;quot;cartblanche n-1-17&amp;quot;&lt;br /&gt;
    url = &amp;quot;http://gitlab.docking.org/&amp;quot;&lt;br /&gt;
    token = &amp;quot;Lvp2X3zRFAN_JQuVZK3y&amp;quot;&lt;br /&gt;
    privileged = true&lt;br /&gt;
    executor = &amp;quot;shell&amp;quot;&lt;br /&gt;
    builds_dir = &amp;quot;/home/cartblanche&amp;quot;&lt;br /&gt;
    [runners.custom_build_dir]&lt;br /&gt;
    [runners.docker]&lt;br /&gt;
      privileged = true&lt;br /&gt;
      disable_cache = false&lt;br /&gt;
      cache_dir = &amp;quot;cache&amp;quot;&lt;br /&gt;
     [runners.cache]&lt;br /&gt;
     [runners.cache.s3]&lt;br /&gt;
     [runners.cache.gcs]&lt;br /&gt;
     [runners.cache.azure]&lt;br /&gt;
&lt;br /&gt;
Return to https://gitlab.docking.org/admin/runners, where the new runner will be displayed. Edit the runner’s tags to describe what the runner will be deploying. For example, the test server has the tag ‘cartblanche-dev’ and the production server has ‘cartblanche22’. &lt;br /&gt;
Once the tag is set, a new job will need to be added to the gitlab deployment script to deploy the correct branch to the correct machine. https://gitlab.docking.org/chinzo/molecule-shopping-cart/-/blob/master/.gitlab-ci.yml &lt;br /&gt;
&lt;br /&gt;
A sample job will look like so:&lt;br /&gt;
&lt;br /&gt;
  services:&lt;br /&gt;
    - redis:latest&lt;br /&gt;
  &#039;&#039;&#039;deploy-dev&#039;&#039;&#039; job:&lt;br /&gt;
      &#039;&#039;&#039;only:&lt;br /&gt;
          - dev&#039;&#039;&#039;&lt;br /&gt;
      stage: deploy&lt;br /&gt;
      services:&lt;br /&gt;
          - redis:latest&lt;br /&gt;
      &#039;&#039;&#039;tags:&lt;br /&gt;
          - cartblanche-dev&#039;&#039;&#039;&lt;br /&gt;
      script:&lt;br /&gt;
          - docker login ${GITLAB_REGISTRY_URL} -u ${GITLAB_REGISTRY_USER} -p ${GITLAB_REGISTRY_PASS}&lt;br /&gt;
          - docker pull ${GITLAB_REGISTRY_URL}/mar/cartblanche22&lt;br /&gt;
          - docker stop ${CI_PROJECT_NAME}&lt;br /&gt;
          - docker run --net cartblanche --name redis -d redis&lt;br /&gt;
          - docker run --net cartblanche -v /nfs/db2/smallworld_anon_21Q4:/nfs/db3/private_smallworld_4th_gen/anon&lt;br /&gt;
                     -v /export/db4/smallworld-java:/export/db4/smallworld-java&lt;br /&gt;
                     -v /nfs/db3/private_smallworld_4th_gen/smallworld.cfg:/nfs/db3/private_smallworld_4th_gen/smallworld.cfg&lt;br /&gt;
                     -v /nfs/db3/private_smallworld_4th_gen/maps:/nfs/db3/private_smallworld_4th_gen/maps&lt;br /&gt;
                     --name ${CI_PROJECT_NAME} -d -p &#039;&#039;&#039;0.0.0.0:5068&#039;&#039;&#039;:5000 ${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-0.1.${CI_JOB_ID}&lt;br /&gt;
&lt;br /&gt;
* The name ‘deploy-dev’ refers to the job name. &lt;br /&gt;
&lt;br /&gt;
* &#039;only: -dev&#039; refers to the script only deploying the dev branch. More branches can be added to deploy pushes to different branches to the same machine. &lt;br /&gt;
&lt;br /&gt;
* &#039;tags: -cartblanche-dev&#039; refers to the job tags, which determines which machine will take care of that deployment job. This can be changed to the tag that was set up earlier. You can also add multiple tags to deploy the same branch (or branches) to multiple machines at the same time.&lt;br /&gt;
&lt;br /&gt;
* 0.0.0.0:5068 refers to the port that points to the application.&lt;br /&gt;
&lt;br /&gt;
[[Category:Cartblanche]]&lt;br /&gt;
[[Category:Docker]]&lt;br /&gt;
[[Category:Mar]]&lt;br /&gt;
[[Category:ZINC22]]&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Tin_Manager&amp;diff=16195</id>
		<title>Tin Manager</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Tin_Manager&amp;diff=16195"/>
		<updated>2024-06-18T19:40:25Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tin Manager is a web application that allows changing the information in the Zinc22Commons database on the fly, for both tin and antimony machines. The front end runs on epyc:3001 and the backend on epyc:5002. &lt;br /&gt;
&lt;br /&gt;
This app is not publicly available, so you must open an ssh tunnel from gimel/portal3 to epyc:3001 in order to access it. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ZINC22]]&lt;br /&gt;
[[Category:Mar]]&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Tin]]&lt;br /&gt;
[[Category:Antimony]]&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Tin_jji&amp;diff=16194</id>
		<title>Tin jji</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Tin_jji&amp;diff=16194"/>
		<updated>2024-06-18T19:39:22Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== load tin == &lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
su - xyz&lt;br /&gt;
bash&lt;br /&gt;
cd /nfs/ex9/work/xyz/tin01&lt;br /&gt;
source /mnt/nfs/home/devtest/anaconda3/bin/activate&lt;br /&gt;
conda activate /nfs/soft/www/apps/tin01/envs/development&lt;br /&gt;
source /nfs/soft/mitools/env.sh&lt;br /&gt;
export TIN_HOST=&amp;quot;n-5-35&amp;quot;&lt;br /&gt;
You can also change the port (default port is 5432)&lt;br /&gt;
export TIN_PORT=&amp;quot;5432&amp;quot;&lt;br /&gt;
zincload-catalog.sh --name mce --skip-depletion H28P03.00.smi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install TIN ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;First you need to be a root &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo -i&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;# Please replace the code with square brackets []&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Python 3.6.7 installation script&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/nfs/home/chinzo/code/installation-utilities/install-python36.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. PostgreSQL12 installation script&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;p&amp;gt;# Please replace /local2. This is your postgres data directory&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;# In this case script will create a data directory in this directory. For example: &#039;&#039;&#039;/local2&#039;&#039;&#039;/psql/12/data&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sh /nfs/home/chinzo/code/installation-utilities/install-postgres12.sh [/local2]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. RDKIT cartridge installation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;# You need to specify rdkit and python directory.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;# /opt/rdkit is directory that you are willing to install rdkit&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;# /opt/python/3.6.7 is directory that you have already installed it&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/nfs/home/chinzo/code/installation-utilities/install-rdkit.sh [/opt/rdkit] [/opt/python/3.6.7]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. PostgreSQL12 configuration for TIN&#039;&#039;&#039;  &lt;br /&gt;
&amp;lt;pre&amp;gt;sh /nfs/home/chinzo/code/installation-utilities/postgres-config.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Internal]]&lt;br /&gt;
[[Category:Tin]]&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Tin_Manager&amp;diff=16193</id>
		<title>Tin Manager</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Tin_Manager&amp;diff=16193"/>
		<updated>2024-06-18T19:38:26Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: Created page with &amp;quot;Tin Manager is a web application that allows changing the information in the Zinc22Commons database on the fly, for both tin and antimony machines. The front end runs on epyc:3001 and the backend on epyc:5002.   This app is not publicly available, so you must open an ssh tunnel from gimel/portal3 to epyc:3001 in order to access it.     Category:Zinc22 Category:Mar Category:Software Category:Tin Category:Antimony&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tin Manager is a web application that allows changing the information in the Zinc22Commons database on the fly, for both tin and antimony machines. The front end runs on epyc:3001 and the backend on epyc:5002. &lt;br /&gt;
&lt;br /&gt;
This app is not publicly available, so you must open an ssh tunnel from gimel/portal3 to epyc:3001 in order to access it. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Zinc22]]&lt;br /&gt;
[[Category:Mar]]&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
[[Category:Tin]]&lt;br /&gt;
[[Category:Antimony]]&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cartblanche22_Build_Instructions&amp;diff=16192</id>
		<title>Cartblanche22 Build Instructions</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cartblanche22_Build_Instructions&amp;diff=16192"/>
		<updated>2024-06-18T19:33:29Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Development environment inside cluster==&lt;br /&gt;
&lt;br /&gt;
* Clone repo&lt;br /&gt;
  Git clone https://gitlab.docking.org/chinzo/molecule-shopping-cart&lt;br /&gt;
  Cd molecule-shopping-cart&lt;br /&gt;
* Create conda environment with python 3.7, install dependencies&lt;br /&gt;
  conda env create -f environment.yml&lt;br /&gt;
  conda activate cartblanche&lt;br /&gt;
&lt;br /&gt;
* Start application&lt;br /&gt;
  ./boot-test.sh&lt;br /&gt;
&lt;br /&gt;
== Deployment Information ==&lt;br /&gt;
&#039;&#039;&#039;Gitlab Deployment Stages&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Production builds are distributed among 3 machines&lt;br /&gt;
    - epyc2&lt;br /&gt;
    - n-9-38&lt;br /&gt;
    - n-1-18&lt;br /&gt;
&lt;br /&gt;
The first stage will build/update the current docker image to the gitlab server running on n-9-22. On the web interface, this is in the cartblanche repo under &#039;Packages &amp;amp; Registries&#039;.&lt;br /&gt;
&lt;br /&gt;
Finally, the docker image is pulled in each of the three servers and restarted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Useful Commands&#039;&#039;&#039; (Use these in the respective server to debug):&lt;br /&gt;
  sudo docker restart cartblanche22 (restart the docker container)&lt;br /&gt;
  sudo docker logs cartblanche22 (view app logs)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Some troubleshooting tips:&#039;&#039;&#039;&lt;br /&gt;
Cartblanche relies on other outside services (smallworld, arthur, databases)  so it’s good to check the status of those before looking into the code.&lt;br /&gt;
&lt;br /&gt;
For smallworld, check the status of api calls, or [https://sw.docking.org/search/view/?hlid=19842&amp;amp;draw=6&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=24&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1654029670029 run a sample query. ]&lt;br /&gt;
&lt;br /&gt;
For arthor, check the status of api class, or [https://arthor.docking.org//dt/ZINC-All-19Q4-1.4B/search?query=CC&amp;amp;type=Substructure&amp;amp;draw=2&amp;amp;start=0&amp;amp;length=80&amp;amp;flags=6144&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=alignment&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=false&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=sim&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=false&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false run a sample query].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For search errors (zincid, smiles, vendor), the docker app logs are usually very informative.&lt;br /&gt;
&lt;br /&gt;
It is also useful to see the status of the redis and redis-sentinel services on each of those machines.&lt;br /&gt;
&lt;br /&gt;
There are three redis databases, one main and two backups. If the main db goes down, one of the backups becomes main. When the old main goes back up, it becomes a backup database.&lt;br /&gt;
&lt;br /&gt;
== Deployment Process ==&lt;br /&gt;
Deployment is as simple as pushing changes to the respective branch. A docker image will be created with the new version of the code, which will then replace the current version. &lt;br /&gt;
To redeploy manually, go to https://gitlab.docking.org/chinzo/molecule-shopping-cart/-/pipelines/new&lt;br /&gt;
&lt;br /&gt;
== Setting up Auto-Deployment ==&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions on setting up a new gitlab runner, [https://gitlab.docking.org/admin/runners found here.]&lt;br /&gt;
&lt;br /&gt;
* Register the runner with the credentials provided in the link above.&lt;br /&gt;
&lt;br /&gt;
* Set ‘shell’ as the executor for the runner when prompted.&lt;br /&gt;
&lt;br /&gt;
* After configuration, the gitlab-runner config found in /etc/gitlab-runner/config.toml should look something like this: &lt;br /&gt;
&lt;br /&gt;
  oncurrent = 1&lt;br /&gt;
  check_interval = 0&lt;br /&gt;
  [session_server]&lt;br /&gt;
    session_timeout = 1800&lt;br /&gt;
  [[runners]]&lt;br /&gt;
    name = &amp;quot;cartblanche n-1-17&amp;quot;&lt;br /&gt;
    url = &amp;quot;http://gitlab.docking.org/&amp;quot;&lt;br /&gt;
    token = &amp;quot;Lvp2X3zRFAN_JQuVZK3y&amp;quot;&lt;br /&gt;
    privileged = true&lt;br /&gt;
    executor = &amp;quot;shell&amp;quot;&lt;br /&gt;
    builds_dir = &amp;quot;/home/cartblanche&amp;quot;&lt;br /&gt;
    [runners.custom_build_dir]&lt;br /&gt;
    [runners.docker]&lt;br /&gt;
      privileged = true&lt;br /&gt;
      disable_cache = false&lt;br /&gt;
      cache_dir = &amp;quot;cache&amp;quot;&lt;br /&gt;
     [runners.cache]&lt;br /&gt;
     [runners.cache.s3]&lt;br /&gt;
     [runners.cache.gcs]&lt;br /&gt;
     [runners.cache.azure]&lt;br /&gt;
&lt;br /&gt;
Return to https://gitlab.docking.org/admin/runners, where the new runner will be displayed. Edit the runner’s tags to describe what the runner will be deploying. For example, the test server has the tag ‘cartblanche-dev’ and the production server has ‘cartblanche22’. &lt;br /&gt;
Once the tag is set, a new job will need to be added to the gitlab deployment script to deploy the correct branch to the correct machine. https://gitlab.docking.org/chinzo/molecule-shopping-cart/-/blob/master/.gitlab-ci.yml &lt;br /&gt;
&lt;br /&gt;
A sample job will look like so:&lt;br /&gt;
&lt;br /&gt;
  services:&lt;br /&gt;
    - redis:latest&lt;br /&gt;
  &#039;&#039;&#039;deploy-dev&#039;&#039;&#039; job:&lt;br /&gt;
      &#039;&#039;&#039;only:&lt;br /&gt;
          - dev&#039;&#039;&#039;&lt;br /&gt;
      stage: deploy&lt;br /&gt;
      services:&lt;br /&gt;
          - redis:latest&lt;br /&gt;
      &#039;&#039;&#039;tags:&lt;br /&gt;
          - cartblanche-dev&#039;&#039;&#039;&lt;br /&gt;
      script:&lt;br /&gt;
          - docker login ${GITLAB_REGISTRY_URL} -u ${GITLAB_REGISTRY_USER} -p ${GITLAB_REGISTRY_PASS}&lt;br /&gt;
          - docker pull ${GITLAB_REGISTRY_URL}/mar/cartblanche22&lt;br /&gt;
          - docker stop ${CI_PROJECT_NAME}&lt;br /&gt;
          - docker run --net cartblanche --name redis -d redis&lt;br /&gt;
          - docker run --net cartblanche -v /nfs/db2/smallworld_anon_21Q4:/nfs/db3/private_smallworld_4th_gen/anon&lt;br /&gt;
                     -v /export/db4/smallworld-java:/export/db4/smallworld-java&lt;br /&gt;
                     -v /nfs/db3/private_smallworld_4th_gen/smallworld.cfg:/nfs/db3/private_smallworld_4th_gen/smallworld.cfg&lt;br /&gt;
                     -v /nfs/db3/private_smallworld_4th_gen/maps:/nfs/db3/private_smallworld_4th_gen/maps&lt;br /&gt;
                     --name ${CI_PROJECT_NAME} -d -p &#039;&#039;&#039;0.0.0.0:5068&#039;&#039;&#039;:5000 ${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-0.1.${CI_JOB_ID}&lt;br /&gt;
&lt;br /&gt;
* The name ‘deploy-dev’ refers to the job name. &lt;br /&gt;
&lt;br /&gt;
* &#039;only: -dev&#039; refers to the script only deploying the dev branch. More branches can be added to deploy pushes to different branches to the same machine. &lt;br /&gt;
&lt;br /&gt;
* &#039;tags: -cartblanche-dev&#039; refers to the job tags, which determines which machine will take care of that deployment job. This can be changed to the tag that was set up earlier. You can also add multiple tags to deploy the same branch (or branches) to multiple machines at the same time.&lt;br /&gt;
&lt;br /&gt;
* 0.0.0.0:5068 refers to the port that points to the application.&lt;br /&gt;
&lt;br /&gt;
[[Category:Cartblanche]]&lt;br /&gt;
[[Category:Docker]]&lt;br /&gt;
[[Category:Mar]]&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cartblanche22_Build_Instructions&amp;diff=16191</id>
		<title>Cartblanche22 Build Instructions</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cartblanche22_Build_Instructions&amp;diff=16191"/>
		<updated>2024-06-18T19:32:11Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: /* Deployment Information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Development environment inside cluster==&lt;br /&gt;
&lt;br /&gt;
* Clone repo&lt;br /&gt;
  Git clone https://gitlab.docking.org/chinzo/molecule-shopping-cart&lt;br /&gt;
  Cd molecule-shopping-cart&lt;br /&gt;
* Create conda environment with python 3.7, install dependencies&lt;br /&gt;
  conda env create -f environment.yml&lt;br /&gt;
  conda activate cartblanche&lt;br /&gt;
&lt;br /&gt;
* Start application&lt;br /&gt;
  ./boot-test.sh&lt;br /&gt;
&lt;br /&gt;
== Deployment Information ==&lt;br /&gt;
&#039;&#039;&#039;Gitlab Deployment Stages&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Production builds are distributed among 3 machines&lt;br /&gt;
    - epyc2&lt;br /&gt;
    - n-9-38&lt;br /&gt;
    - n-1-18&lt;br /&gt;
&lt;br /&gt;
The first stage will build/update the current docker image to the gitlab server running on n-9-22. On the web interface, this is in the cartblanche repo under &#039;Packages &amp;amp; Registries&#039;.&lt;br /&gt;
&lt;br /&gt;
Finally, the docker image is pulled in each of the three servers and restarted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Useful Commands&#039;&#039;&#039; (Use these in the respective server to debug):&lt;br /&gt;
  sudo docker restart cartblanche22 (restart the docker container)&lt;br /&gt;
  sudo docker logs cartblanche22 (view app logs)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Some troubleshooting tips:&#039;&#039;&#039;&lt;br /&gt;
Cartblanche relies on other outside services (smallworld, arthur, databases)  so it’s good to check the status of those before looking into the code.&lt;br /&gt;
&lt;br /&gt;
For smallworld, check the status of api calls, or [https://sw.docking.org/search/view/?hlid=19842&amp;amp;draw=6&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=24&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1654029670029 run a sample query. ]&lt;br /&gt;
&lt;br /&gt;
For arthor, check the status of api class, or [https://arthor.docking.org//dt/ZINC-All-19Q4-1.4B/search?query=CC&amp;amp;type=Substructure&amp;amp;draw=2&amp;amp;start=0&amp;amp;length=80&amp;amp;flags=6144&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=alignment&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=false&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=sim&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=false&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false run a sample query].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For search errors (zincid, smiles, vendor), the docker app logs are usually very informative.&lt;br /&gt;
&lt;br /&gt;
It is also useful to see the status of the redis and redis-sentinel services on each of those machines.&lt;br /&gt;
&lt;br /&gt;
There are three redis databases, one main and two backups. If the main db goes down, one of the backups becomes main. When the old main goes back up, it becomes a backup database.&lt;br /&gt;
&lt;br /&gt;
== Deployment Process ==&lt;br /&gt;
Deployment is as simple as pushing changes to the respective branch. A docker image will be created with the new version of the code, which will then replace the current version. &lt;br /&gt;
To redeploy manually, go to https://gitlab.docking.org/chinzo/molecule-shopping-cart/-/pipelines/new&lt;br /&gt;
&lt;br /&gt;
== Setting up Auto-Deployment ==&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions on setting up a new gitlab runner, [https://gitlab.docking.org/admin/runners found here.]&lt;br /&gt;
&lt;br /&gt;
* Register the runner with the credentials provided in the link above.&lt;br /&gt;
&lt;br /&gt;
* Set ‘shell’ as the executor for the runner when prompted.&lt;br /&gt;
&lt;br /&gt;
* After configuration, the gitlab-runner config found in /etc/gitlab-runner/config.toml should look something like this: &lt;br /&gt;
&lt;br /&gt;
  oncurrent = 1&lt;br /&gt;
  check_interval = 0&lt;br /&gt;
  [session_server]&lt;br /&gt;
    session_timeout = 1800&lt;br /&gt;
  [[runners]]&lt;br /&gt;
    name = &amp;quot;cartblanche n-1-17&amp;quot;&lt;br /&gt;
    url = &amp;quot;http://gitlab.docking.org/&amp;quot;&lt;br /&gt;
    token = &amp;quot;Lvp2X3zRFAN_JQuVZK3y&amp;quot;&lt;br /&gt;
    privileged = true&lt;br /&gt;
    executor = &amp;quot;shell&amp;quot;&lt;br /&gt;
    builds_dir = &amp;quot;/home/cartblanche&amp;quot;&lt;br /&gt;
    [runners.custom_build_dir]&lt;br /&gt;
    [runners.docker]&lt;br /&gt;
      privileged = true&lt;br /&gt;
      disable_cache = false&lt;br /&gt;
      cache_dir = &amp;quot;cache&amp;quot;&lt;br /&gt;
     [runners.cache]&lt;br /&gt;
     [runners.cache.s3]&lt;br /&gt;
     [runners.cache.gcs]&lt;br /&gt;
     [runners.cache.azure]&lt;br /&gt;
&lt;br /&gt;
Return to https://gitlab.docking.org/admin/runners, where the new runner will be displayed. Edit the runner’s tags to describe what the runner will be deploying. For example, the test server has the tag ‘cartblanche-dev’ and the production server has ‘cartblanche22’. &lt;br /&gt;
Once the tag is set, a new job will need to be added to the gitlab deployment script to deploy the correct branch to the correct machine. https://gitlab.docking.org/chinzo/molecule-shopping-cart/-/blob/master/.gitlab-ci.yml &lt;br /&gt;
&lt;br /&gt;
A sample job will look like so:&lt;br /&gt;
&lt;br /&gt;
  services:&lt;br /&gt;
    - redis:latest&lt;br /&gt;
  &#039;&#039;&#039;deploy-dev&#039;&#039;&#039; job:&lt;br /&gt;
      &#039;&#039;&#039;only:&lt;br /&gt;
          - dev&#039;&#039;&#039;&lt;br /&gt;
      stage: deploy&lt;br /&gt;
      services:&lt;br /&gt;
          - redis:latest&lt;br /&gt;
      &#039;&#039;&#039;tags:&lt;br /&gt;
          - cartblanche-dev&#039;&#039;&#039;&lt;br /&gt;
      script:&lt;br /&gt;
          - docker login ${GITLAB_REGISTRY_URL} -u ${GITLAB_REGISTRY_USER} -p ${GITLAB_REGISTRY_PASS}&lt;br /&gt;
          - docker pull ${GITLAB_REGISTRY_URL}/mar/cartblanche22&lt;br /&gt;
          - docker stop ${CI_PROJECT_NAME}&lt;br /&gt;
          - docker run --net cartblanche --name redis -d redis&lt;br /&gt;
          - docker run --net cartblanche -v /nfs/db2/smallworld_anon_21Q4:/nfs/db3/private_smallworld_4th_gen/anon&lt;br /&gt;
                     -v /export/db4/smallworld-java:/export/db4/smallworld-java&lt;br /&gt;
                     -v /nfs/db3/private_smallworld_4th_gen/smallworld.cfg:/nfs/db3/private_smallworld_4th_gen/smallworld.cfg&lt;br /&gt;
                     -v /nfs/db3/private_smallworld_4th_gen/maps:/nfs/db3/private_smallworld_4th_gen/maps&lt;br /&gt;
                     --name ${CI_PROJECT_NAME} -d -p &#039;&#039;&#039;0.0.0.0:5068&#039;&#039;&#039;:5000 ${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-0.1.${CI_JOB_ID}&lt;br /&gt;
&lt;br /&gt;
* The name ‘deploy-dev’ refers to the job name. &lt;br /&gt;
&lt;br /&gt;
* &#039;only: -dev&#039; refers to the script only deploying the dev branch. More branches can be added to deploy pushes to different branches to the same machine. &lt;br /&gt;
&lt;br /&gt;
* &#039;tags: -cartblanche-dev&#039; refers to the job tags, which determines which machine will take care of that deployment job. This can be changed to the tag that was set up earlier. You can also add multiple tags to deploy the same branch (or branches) to multiple machines at the same time.&lt;br /&gt;
&lt;br /&gt;
* 0.0.0.0:5068 refers to the port that points to the application.&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cartblanche22_Build_Instructions&amp;diff=15559</id>
		<title>Cartblanche22 Build Instructions</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cartblanche22_Build_Instructions&amp;diff=15559"/>
		<updated>2023-11-16T18:49:03Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: /* Deployment Information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Development environment inside cluster==&lt;br /&gt;
&lt;br /&gt;
* Clone repo&lt;br /&gt;
  Git clone https://gitlab.docking.org/chinzo/molecule-shopping-cart&lt;br /&gt;
  Cd molecule-shopping-cart&lt;br /&gt;
* Create conda environment with python 3.7, install dependencies&lt;br /&gt;
  conda env create -f environment.yml&lt;br /&gt;
  conda activate cartblanche&lt;br /&gt;
&lt;br /&gt;
* Start application&lt;br /&gt;
  ./boot-test.sh&lt;br /&gt;
&lt;br /&gt;
== Deployment Information ==&lt;br /&gt;
&#039;&#039;&#039;Gitlab Deployment Stages&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Production builds are distributed among 3 machines&lt;br /&gt;
    - epyc2&lt;br /&gt;
    - n-9-38&lt;br /&gt;
    - n-1-18&lt;br /&gt;
&lt;br /&gt;
The first stage will build/update the current docker image to the gitlab server running on n-9-22. On the web interface, this is in the cartblanche repo under &#039;Packages &amp;amp; Registries&#039;.&lt;br /&gt;
&lt;br /&gt;
The second stage tests the new container and runs tests for &lt;br /&gt;
    - ZincID Search&lt;br /&gt;
    - Supplier Code Search&lt;br /&gt;
    - SMILES Search&lt;br /&gt;
&lt;br /&gt;
Finally, the docker image is pulled in each of the three servers and restarted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Useful Commands&#039;&#039;&#039; (Use these in the respective server to debug):&lt;br /&gt;
  sudo docker restart cartblanche22 (restart the docker container)&lt;br /&gt;
  sudo docker logs cartblanche22 (view app logs)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Some troubleshooting tips:&#039;&#039;&#039;&lt;br /&gt;
Cartblanche relies on other outside services (smallworld, arthur, databases)  so it’s good to check the status of those before looking into the code.&lt;br /&gt;
&lt;br /&gt;
For smallworld, check the status of api calls, or [https://sw.docking.org/search/view/?hlid=19842&amp;amp;draw=6&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=24&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1654029670029 run a sample query. ]&lt;br /&gt;
&lt;br /&gt;
For arthor, check the status of api class, or [https://arthor.docking.org//dt/ZINC-All-19Q4-1.4B/search?query=CC&amp;amp;type=Substructure&amp;amp;draw=2&amp;amp;start=0&amp;amp;length=80&amp;amp;flags=6144&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=alignment&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=false&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=sim&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=false&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false run a sample query].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For search errors (zincid, smiles, vendor), the docker app logs are usually very informative.&lt;br /&gt;
&lt;br /&gt;
It is also useful to see the status of the redis and redis-sentinel services on each of those machines.&lt;br /&gt;
&lt;br /&gt;
There are three redis databases, one main and two backups. If the main db goes down, one of the backups becomes main. When the old main goes back up, it becomes a backup database.&lt;br /&gt;
&lt;br /&gt;
== Deployment Process ==&lt;br /&gt;
Deployment is as simple as pushing changes to the respective branch. A docker image will be created with the new version of the code, which will then replace the current version. &lt;br /&gt;
To redeploy manually, go to https://gitlab.docking.org/chinzo/molecule-shopping-cart/-/pipelines/new&lt;br /&gt;
&lt;br /&gt;
== Setting up Auto-Deployment ==&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions on setting up a new gitlab runner, [https://gitlab.docking.org/admin/runners found here.]&lt;br /&gt;
&lt;br /&gt;
* Register the runner with the credentials provided in the link above.&lt;br /&gt;
&lt;br /&gt;
* Set ‘shell’ as the executor for the runner when prompted.&lt;br /&gt;
&lt;br /&gt;
* After configuration, the gitlab-runner config found in /etc/gitlab-runner/config.toml should look something like this: &lt;br /&gt;
&lt;br /&gt;
  oncurrent = 1&lt;br /&gt;
  check_interval = 0&lt;br /&gt;
  [session_server]&lt;br /&gt;
    session_timeout = 1800&lt;br /&gt;
  [[runners]]&lt;br /&gt;
    name = &amp;quot;cartblanche n-1-17&amp;quot;&lt;br /&gt;
    url = &amp;quot;http://gitlab.docking.org/&amp;quot;&lt;br /&gt;
    token = &amp;quot;Lvp2X3zRFAN_JQuVZK3y&amp;quot;&lt;br /&gt;
    privileged = true&lt;br /&gt;
    executor = &amp;quot;shell&amp;quot;&lt;br /&gt;
    builds_dir = &amp;quot;/home/cartblanche&amp;quot;&lt;br /&gt;
    [runners.custom_build_dir]&lt;br /&gt;
    [runners.docker]&lt;br /&gt;
      privileged = true&lt;br /&gt;
      disable_cache = false&lt;br /&gt;
      cache_dir = &amp;quot;cache&amp;quot;&lt;br /&gt;
     [runners.cache]&lt;br /&gt;
     [runners.cache.s3]&lt;br /&gt;
     [runners.cache.gcs]&lt;br /&gt;
     [runners.cache.azure]&lt;br /&gt;
&lt;br /&gt;
Return to https://gitlab.docking.org/admin/runners, where the new runner will be displayed. Edit the runner’s tags to describe what the runner will be deploying. For example, the test server has the tag ‘cartblanche-dev’ and the production server has ‘cartblanche22’. &lt;br /&gt;
Once the tag is set, a new job will need to be added to the gitlab deployment script to deploy the correct branch to the correct machine. https://gitlab.docking.org/chinzo/molecule-shopping-cart/-/blob/master/.gitlab-ci.yml &lt;br /&gt;
&lt;br /&gt;
A sample job will look like so:&lt;br /&gt;
&lt;br /&gt;
  services:&lt;br /&gt;
    - redis:latest&lt;br /&gt;
  &#039;&#039;&#039;deploy-dev&#039;&#039;&#039; job:&lt;br /&gt;
      &#039;&#039;&#039;only:&lt;br /&gt;
          - dev&#039;&#039;&#039;&lt;br /&gt;
      stage: deploy&lt;br /&gt;
      services:&lt;br /&gt;
          - redis:latest&lt;br /&gt;
      &#039;&#039;&#039;tags:&lt;br /&gt;
          - cartblanche-dev&#039;&#039;&#039;&lt;br /&gt;
      script:&lt;br /&gt;
          - docker login ${GITLAB_REGISTRY_URL} -u ${GITLAB_REGISTRY_USER} -p ${GITLAB_REGISTRY_PASS}&lt;br /&gt;
          - docker pull ${GITLAB_REGISTRY_URL}/mar/cartblanche22&lt;br /&gt;
          - docker stop ${CI_PROJECT_NAME}&lt;br /&gt;
          - docker run --net cartblanche --name redis -d redis&lt;br /&gt;
          - docker run --net cartblanche -v /nfs/db2/smallworld_anon_21Q4:/nfs/db3/private_smallworld_4th_gen/anon&lt;br /&gt;
                     -v /export/db4/smallworld-java:/export/db4/smallworld-java&lt;br /&gt;
                     -v /nfs/db3/private_smallworld_4th_gen/smallworld.cfg:/nfs/db3/private_smallworld_4th_gen/smallworld.cfg&lt;br /&gt;
                     -v /nfs/db3/private_smallworld_4th_gen/maps:/nfs/db3/private_smallworld_4th_gen/maps&lt;br /&gt;
                     --name ${CI_PROJECT_NAME} -d -p &#039;&#039;&#039;0.0.0.0:5068&#039;&#039;&#039;:5000 ${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-0.1.${CI_JOB_ID}&lt;br /&gt;
&lt;br /&gt;
* The name ‘deploy-dev’ refers to the job name. &lt;br /&gt;
&lt;br /&gt;
* &#039;only: -dev&#039; refers to the script only deploying the dev branch. More branches can be added to deploy pushes to different branches to the same machine. &lt;br /&gt;
&lt;br /&gt;
* &#039;tags: -cartblanche-dev&#039; refers to the job tags, which determines which machine will take care of that deployment job. This can be changed to the tag that was set up earlier. You can also add multiple tags to deploy the same branch (or branches) to multiple machines at the same time.&lt;br /&gt;
&lt;br /&gt;
* 0.0.0.0:5068 refers to the port that points to the application.&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cartblanche22_Build_Instructions&amp;diff=15494</id>
		<title>Cartblanche22 Build Instructions</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cartblanche22_Build_Instructions&amp;diff=15494"/>
		<updated>2023-08-17T19:05:36Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: /* Setting up Auto-Deployment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Development environment inside cluster==&lt;br /&gt;
&lt;br /&gt;
* Clone repo&lt;br /&gt;
  Git clone https://gitlab.docking.org/chinzo/molecule-shopping-cart&lt;br /&gt;
  Cd molecule-shopping-cart&lt;br /&gt;
* Create conda environment with python 3.7, install dependencies&lt;br /&gt;
  conda env create -f environment.yml&lt;br /&gt;
  conda activate cartblanche&lt;br /&gt;
&lt;br /&gt;
* Start application&lt;br /&gt;
  ./boot-test.sh&lt;br /&gt;
&lt;br /&gt;
== Deployment Information ==&lt;br /&gt;
&#039;&#039;&#039;Gitlab Deployment Stages&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Production builds are distributed among 3 machines&lt;br /&gt;
    - epyc2&lt;br /&gt;
    - n-9-38&lt;br /&gt;
    - n-1-18&lt;br /&gt;
&lt;br /&gt;
The first stage will build/update the current docker image to the gitlab server running on n-9-22. On the web interface, this is in the cartblanche repo under &#039;Packages &amp;amp; Registries&#039;.&lt;br /&gt;
&lt;br /&gt;
The second stage tests the new container and runs tests for &lt;br /&gt;
    - ZincID Search&lt;br /&gt;
    - Supplier Code Search&lt;br /&gt;
    - SMILES Search&lt;br /&gt;
&lt;br /&gt;
Finally, the docker image is pulled in each of the three servers and restarted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Useful Commands&#039;&#039;&#039; (Use these in the respective server to debug):&lt;br /&gt;
  docker restart molecule-shopping-cart (restart the docker container)&lt;br /&gt;
  docker logs molecule-shopping-cart (view app logs)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Some troubleshooting tips:&#039;&#039;&#039;&lt;br /&gt;
Cartblanche relies on other outside services (smallworld, arthur, databases)  so it’s good to check the status of those before looking into the code.&lt;br /&gt;
&lt;br /&gt;
For smallworld, check the status of api calls, or [https://sw.docking.org/search/view/?hlid=19842&amp;amp;draw=6&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=24&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1654029670029 run a sample query. ]&lt;br /&gt;
&lt;br /&gt;
For arthor, check the status of api class, or [https://arthor.docking.org//dt/ZINC-All-19Q4-1.4B/search?query=CC&amp;amp;type=Substructure&amp;amp;draw=2&amp;amp;start=0&amp;amp;length=80&amp;amp;flags=6144&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=alignment&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=false&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=sim&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=false&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false run a sample query].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For search errors (zincid, smiles, vendor), the docker app logs are usually very informative.&lt;br /&gt;
&lt;br /&gt;
It is also useful to see the status of the redis and redis-sentinel services on each of those machines.&lt;br /&gt;
&lt;br /&gt;
There are three redis databases, one main and two backups. If the main db goes down, one of the backups becomes main. When the old main goes back up, it becomes a backup database.&lt;br /&gt;
&lt;br /&gt;
== Deployment Process ==&lt;br /&gt;
Deployment is as simple as pushing changes to the respective branch. A docker image will be created with the new version of the code, which will then replace the current version. &lt;br /&gt;
To redeploy manually, go to https://gitlab.docking.org/chinzo/molecule-shopping-cart/-/pipelines/new&lt;br /&gt;
&lt;br /&gt;
== Setting up Auto-Deployment ==&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions on setting up a new gitlab runner, [https://gitlab.docking.org/admin/runners found here.]&lt;br /&gt;
&lt;br /&gt;
* Register the runner with the credentials provided in the link above.&lt;br /&gt;
&lt;br /&gt;
* Set ‘shell’ as the executor for the runner when prompted.&lt;br /&gt;
&lt;br /&gt;
* After configuration, the gitlab-runner config found in /etc/gitlab-runner/config.toml should look something like this: &lt;br /&gt;
&lt;br /&gt;
  oncurrent = 1&lt;br /&gt;
  check_interval = 0&lt;br /&gt;
  [session_server]&lt;br /&gt;
    session_timeout = 1800&lt;br /&gt;
  [[runners]]&lt;br /&gt;
    name = &amp;quot;cartblanche n-1-17&amp;quot;&lt;br /&gt;
    url = &amp;quot;http://gitlab.docking.org/&amp;quot;&lt;br /&gt;
    token = &amp;quot;Lvp2X3zRFAN_JQuVZK3y&amp;quot;&lt;br /&gt;
    privileged = true&lt;br /&gt;
    executor = &amp;quot;shell&amp;quot;&lt;br /&gt;
    builds_dir = &amp;quot;/home/cartblanche&amp;quot;&lt;br /&gt;
    [runners.custom_build_dir]&lt;br /&gt;
    [runners.docker]&lt;br /&gt;
      privileged = true&lt;br /&gt;
      disable_cache = false&lt;br /&gt;
      cache_dir = &amp;quot;cache&amp;quot;&lt;br /&gt;
     [runners.cache]&lt;br /&gt;
     [runners.cache.s3]&lt;br /&gt;
     [runners.cache.gcs]&lt;br /&gt;
     [runners.cache.azure]&lt;br /&gt;
&lt;br /&gt;
Return to https://gitlab.docking.org/admin/runners, where the new runner will be displayed. Edit the runner’s tags to describe what the runner will be deploying. For example, the test server has the tag ‘cartblanche-dev’ and the production server has ‘cartblanche22’. &lt;br /&gt;
Once the tag is set, a new job will need to be added to the gitlab deployment script to deploy the correct branch to the correct machine. https://gitlab.docking.org/chinzo/molecule-shopping-cart/-/blob/master/.gitlab-ci.yml &lt;br /&gt;
&lt;br /&gt;
A sample job will look like so:&lt;br /&gt;
&lt;br /&gt;
  services:&lt;br /&gt;
    - redis:latest&lt;br /&gt;
  &#039;&#039;&#039;deploy-dev&#039;&#039;&#039; job:&lt;br /&gt;
      &#039;&#039;&#039;only:&lt;br /&gt;
          - dev&#039;&#039;&#039;&lt;br /&gt;
      stage: deploy&lt;br /&gt;
      services:&lt;br /&gt;
          - redis:latest&lt;br /&gt;
      &#039;&#039;&#039;tags:&lt;br /&gt;
          - cartblanche-dev&#039;&#039;&#039;&lt;br /&gt;
      script:&lt;br /&gt;
          - docker login ${GITLAB_REGISTRY_URL} -u ${GITLAB_REGISTRY_USER} -p ${GITLAB_REGISTRY_PASS}&lt;br /&gt;
          - docker pull ${GITLAB_REGISTRY_URL}/mar/cartblanche22&lt;br /&gt;
          - docker stop ${CI_PROJECT_NAME}&lt;br /&gt;
          - docker run --net cartblanche --name redis -d redis&lt;br /&gt;
          - docker run --net cartblanche -v /nfs/db2/smallworld_anon_21Q4:/nfs/db3/private_smallworld_4th_gen/anon&lt;br /&gt;
                     -v /export/db4/smallworld-java:/export/db4/smallworld-java&lt;br /&gt;
                     -v /nfs/db3/private_smallworld_4th_gen/smallworld.cfg:/nfs/db3/private_smallworld_4th_gen/smallworld.cfg&lt;br /&gt;
                     -v /nfs/db3/private_smallworld_4th_gen/maps:/nfs/db3/private_smallworld_4th_gen/maps&lt;br /&gt;
                     --name ${CI_PROJECT_NAME} -d -p &#039;&#039;&#039;0.0.0.0:5068&#039;&#039;&#039;:5000 ${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-0.1.${CI_JOB_ID}&lt;br /&gt;
&lt;br /&gt;
* The name ‘deploy-dev’ refers to the job name. &lt;br /&gt;
&lt;br /&gt;
* &#039;only: -dev&#039; refers to the script only deploying the dev branch. More branches can be added to deploy pushes to different branches to the same machine. &lt;br /&gt;
&lt;br /&gt;
* &#039;tags: -cartblanche-dev&#039; refers to the job tags, which determines which machine will take care of that deployment job. This can be changed to the tag that was set up earlier. You can also add multiple tags to deploy the same branch (or branches) to multiple machines at the same time.&lt;br /&gt;
&lt;br /&gt;
* 0.0.0.0:5068 refers to the port that points to the application.&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cartblanche22_Build_Instructions&amp;diff=15493</id>
		<title>Cartblanche22 Build Instructions</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cartblanche22_Build_Instructions&amp;diff=15493"/>
		<updated>2023-08-17T19:04:19Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: /* Deployment Information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Development environment inside cluster==&lt;br /&gt;
&lt;br /&gt;
* Clone repo&lt;br /&gt;
  Git clone https://gitlab.docking.org/chinzo/molecule-shopping-cart&lt;br /&gt;
  Cd molecule-shopping-cart&lt;br /&gt;
* Create conda environment with python 3.7, install dependencies&lt;br /&gt;
  conda env create -f environment.yml&lt;br /&gt;
  conda activate cartblanche&lt;br /&gt;
&lt;br /&gt;
* Start application&lt;br /&gt;
  ./boot-test.sh&lt;br /&gt;
&lt;br /&gt;
== Deployment Information ==&lt;br /&gt;
&#039;&#039;&#039;Gitlab Deployment Stages&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Production builds are distributed among 3 machines&lt;br /&gt;
    - epyc2&lt;br /&gt;
    - n-9-38&lt;br /&gt;
    - n-1-18&lt;br /&gt;
&lt;br /&gt;
The first stage will build/update the current docker image to the gitlab server running on n-9-22. On the web interface, this is in the cartblanche repo under &#039;Packages &amp;amp; Registries&#039;.&lt;br /&gt;
&lt;br /&gt;
The second stage tests the new container and runs tests for &lt;br /&gt;
    - ZincID Search&lt;br /&gt;
    - Supplier Code Search&lt;br /&gt;
    - SMILES Search&lt;br /&gt;
&lt;br /&gt;
Finally, the docker image is pulled in each of the three servers and restarted.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Useful Commands&#039;&#039;&#039; (Use these in the respective server to debug):&lt;br /&gt;
  docker restart molecule-shopping-cart (restart the docker container)&lt;br /&gt;
  docker logs molecule-shopping-cart (view app logs)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Some troubleshooting tips:&#039;&#039;&#039;&lt;br /&gt;
Cartblanche relies on other outside services (smallworld, arthur, databases)  so it’s good to check the status of those before looking into the code.&lt;br /&gt;
&lt;br /&gt;
For smallworld, check the status of api calls, or [https://sw.docking.org/search/view/?hlid=19842&amp;amp;draw=6&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=24&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1654029670029 run a sample query. ]&lt;br /&gt;
&lt;br /&gt;
For arthor, check the status of api class, or [https://arthor.docking.org//dt/ZINC-All-19Q4-1.4B/search?query=CC&amp;amp;type=Substructure&amp;amp;draw=2&amp;amp;start=0&amp;amp;length=80&amp;amp;flags=6144&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=alignment&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=false&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=sim&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=false&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false run a sample query].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For search errors (zincid, smiles, vendor), the docker app logs are usually very informative.&lt;br /&gt;
&lt;br /&gt;
It is also useful to see the status of the redis and redis-sentinel services on each of those machines.&lt;br /&gt;
&lt;br /&gt;
There are three redis databases, one main and two backups. If the main db goes down, one of the backups becomes main. When the old main goes back up, it becomes a backup database.&lt;br /&gt;
&lt;br /&gt;
== Deployment Process ==&lt;br /&gt;
Deployment is as simple as pushing changes to the respective branch. A docker image will be created with the new version of the code, which will then replace the current version. &lt;br /&gt;
To redeploy manually, go to https://gitlab.docking.org/chinzo/molecule-shopping-cart/-/pipelines/new&lt;br /&gt;
&lt;br /&gt;
== Setting up Auto-Deployment ==&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions on setting up a new gitlab runner, [https://gitlab.docking.org/admin/runners found here.]&lt;br /&gt;
&lt;br /&gt;
* Register the runner with the credentials provided in the link above.&lt;br /&gt;
&lt;br /&gt;
* Set ‘shell’ as the executor for the runner when prompted.&lt;br /&gt;
&lt;br /&gt;
* After configuration, the gitlab-runner config found in /etc/gitlab-runner/config.toml should look something like this: &lt;br /&gt;
&lt;br /&gt;
  oncurrent = 1&lt;br /&gt;
  check_interval = 0&lt;br /&gt;
  [session_server]&lt;br /&gt;
    session_timeout = 1800&lt;br /&gt;
  [[runners]]&lt;br /&gt;
    name = &amp;quot;cartblanche n-1-17&amp;quot;&lt;br /&gt;
    url = &amp;quot;http://gitlab.docking.org/&amp;quot;&lt;br /&gt;
    token = &amp;quot;Lvp2X3zRFAN_JQuVZK3y&amp;quot;&lt;br /&gt;
    privileged = true&lt;br /&gt;
    executor = &amp;quot;shell&amp;quot;&lt;br /&gt;
    builds_dir = &amp;quot;/home/cartblanche&amp;quot;&lt;br /&gt;
    [runners.custom_build_dir]&lt;br /&gt;
    [runners.docker]&lt;br /&gt;
      privileged = true&lt;br /&gt;
      disable_cache = false&lt;br /&gt;
      cache_dir = &amp;quot;cache&amp;quot;&lt;br /&gt;
     [runners.cache]&lt;br /&gt;
     [runners.cache.s3]&lt;br /&gt;
     [runners.cache.gcs]&lt;br /&gt;
     [runners.cache.azure]&lt;br /&gt;
&lt;br /&gt;
Return to https://gitlab.docking.org/admin/runners, where the new runner will be displayed. Edit the runner’s tags to describe what the runner will be deploying. For example, the test server has the tag ‘cartblanche-dev’ and the production server has ‘cartblanche22’. &lt;br /&gt;
Once the tag is set, a new job will need to be added to the gitlab deployment script to deploy the correct branch to the correct machine. https://gitlab.docking.org/chinzo/molecule-shopping-cart/-/blob/master/.gitlab-ci.yml &lt;br /&gt;
&lt;br /&gt;
A sample job will look like so:&lt;br /&gt;
&lt;br /&gt;
  services:&lt;br /&gt;
    - redis:latest&lt;br /&gt;
  &#039;&#039;&#039;deploy-dev&#039;&#039;&#039; job:&lt;br /&gt;
      &#039;&#039;&#039;only:&lt;br /&gt;
          - dev&#039;&#039;&#039;&lt;br /&gt;
      stage: deploy&lt;br /&gt;
      services:&lt;br /&gt;
          - redis:latest&lt;br /&gt;
      &#039;&#039;&#039;tags:&lt;br /&gt;
          - cartblanche-dev&#039;&#039;&#039;&lt;br /&gt;
      script:&lt;br /&gt;
          - docker build -t &amp;quot;${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-0.1.${CI_JOB_ID}&amp;quot; .&lt;br /&gt;
          - docker stop ${CI_PROJECT_NAME}&lt;br /&gt;
          - docker rm ${CI_PROJECT_NAME}&lt;br /&gt;
          - docker stop redis&lt;br /&gt;
          - docker rm redis&lt;br /&gt;
          - docker run --net cartblanche --name redis -d redis&lt;br /&gt;
          - docker run --net cartblanche -v /nfs/db2/smallworld_anon_21Q4:/nfs/db3/private_smallworld_4th_gen/anon&lt;br /&gt;
                     -v /export/db4/smallworld-java:/export/db4/smallworld-java&lt;br /&gt;
                     -v /nfs/db3/private_smallworld_4th_gen/smallworld.cfg:/nfs/db3/private_smallworld_4th_gen/smallworld.cfg&lt;br /&gt;
                     -v /nfs/db3/private_smallworld_4th_gen/maps:/nfs/db3/private_smallworld_4th_gen/maps&lt;br /&gt;
                     --name ${CI_PROJECT_NAME} -d -p &#039;&#039;&#039;0.0.0.0:5068&#039;&#039;&#039;:5000 ${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-0.1.${CI_JOB_ID}&lt;br /&gt;
&lt;br /&gt;
* The name ‘deploy-dev’ refers to the job name. &lt;br /&gt;
&lt;br /&gt;
* &#039;only: -dev&#039; refers to the script only deploying the dev branch. More branches can be added to deploy pushes to different branches to the same machine. &lt;br /&gt;
&lt;br /&gt;
* &#039;tags: -cartblanche-dev&#039; refers to the job tags, which determines which machine will take care of that deployment job. This can be changed to the tag that was set up earlier. You can also add multiple tags to deploy the same branch (or branches) to multiple machines at the same time.&lt;br /&gt;
&lt;br /&gt;
* 0.0.0.0:5068 refers to the port that points to the application.&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cartblanche22_Build_Instructions&amp;diff=15492</id>
		<title>Cartblanche22 Build Instructions</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cartblanche22_Build_Instructions&amp;diff=15492"/>
		<updated>2023-08-17T18:41:28Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: /* Deployment Information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Development environment inside cluster==&lt;br /&gt;
&lt;br /&gt;
* Clone repo&lt;br /&gt;
  Git clone https://gitlab.docking.org/chinzo/molecule-shopping-cart&lt;br /&gt;
  Cd molecule-shopping-cart&lt;br /&gt;
* Create conda environment with python 3.7, install dependencies&lt;br /&gt;
  conda env create -f environment.yml&lt;br /&gt;
  conda activate cartblanche&lt;br /&gt;
&lt;br /&gt;
* Start application&lt;br /&gt;
  ./boot-test.sh&lt;br /&gt;
&lt;br /&gt;
== Deployment Information ==&lt;br /&gt;
Production builds are distributed among 3 machines&lt;br /&gt;
    - epyc2&lt;br /&gt;
    - n-9-38&lt;br /&gt;
    - n-1-18&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Useful Commands&#039;&#039;&#039; (Use these in the respective server to debug):&lt;br /&gt;
  docker restart molecule-shopping-cart (restart the docker container)&lt;br /&gt;
  docker logs molecule-shopping-cart (view app logs)&lt;br /&gt;
  docker exec -it molecule-shopping-cart /bin/bash (open a shell inside of the docker container, useful for making quick minimal changes without having to redeploy)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Some troubleshooting tips:&#039;&#039;&#039;&lt;br /&gt;
Cartblanche relies on other outside services (smallworld, arthur, databases)  so it’s good to check the status of those before looking into the code.&lt;br /&gt;
&lt;br /&gt;
For smallworld, check the status of api calls, or [https://sw.docking.org/search/view/?hlid=19842&amp;amp;draw=6&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=24&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1654029670029 run a sample query. ]&lt;br /&gt;
&lt;br /&gt;
For arthor, check the status of api class, or [https://arthor.docking.org//dt/ZINC-All-19Q4-1.4B/search?query=CC&amp;amp;type=Substructure&amp;amp;draw=2&amp;amp;start=0&amp;amp;length=80&amp;amp;flags=6144&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=alignment&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=false&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=sim&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=false&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false run a sample query].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For search errors (zincid, smiles, vendor), the docker app logs are usually very informative.&lt;br /&gt;
&lt;br /&gt;
It is also useful to see the status of the redis and redis-sentinel services on each of those machines.&lt;br /&gt;
&lt;br /&gt;
There are three redis databases, one main and two backups. If the main db goes down, one of the backups becomes main. When the old main goes back up, it becomes a backup database.&lt;br /&gt;
&lt;br /&gt;
== Deployment Process ==&lt;br /&gt;
Deployment is as simple as pushing changes to the respective branch. A docker image will be created with the new version of the code, which will then replace the current version. &lt;br /&gt;
To redeploy manually, go to https://gitlab.docking.org/chinzo/molecule-shopping-cart/-/pipelines/new&lt;br /&gt;
&lt;br /&gt;
== Setting up Auto-Deployment ==&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions on setting up a new gitlab runner, [https://gitlab.docking.org/admin/runners found here.]&lt;br /&gt;
&lt;br /&gt;
* Register the runner with the credentials provided in the link above.&lt;br /&gt;
&lt;br /&gt;
* Set ‘shell’ as the executor for the runner when prompted.&lt;br /&gt;
&lt;br /&gt;
* After configuration, the gitlab-runner config found in /etc/gitlab-runner/config.toml should look something like this: &lt;br /&gt;
&lt;br /&gt;
  oncurrent = 1&lt;br /&gt;
  check_interval = 0&lt;br /&gt;
  [session_server]&lt;br /&gt;
    session_timeout = 1800&lt;br /&gt;
  [[runners]]&lt;br /&gt;
    name = &amp;quot;cartblanche n-1-17&amp;quot;&lt;br /&gt;
    url = &amp;quot;http://gitlab.docking.org/&amp;quot;&lt;br /&gt;
    token = &amp;quot;Lvp2X3zRFAN_JQuVZK3y&amp;quot;&lt;br /&gt;
    privileged = true&lt;br /&gt;
    executor = &amp;quot;shell&amp;quot;&lt;br /&gt;
    builds_dir = &amp;quot;/home/cartblanche&amp;quot;&lt;br /&gt;
    [runners.custom_build_dir]&lt;br /&gt;
    [runners.docker]&lt;br /&gt;
      privileged = true&lt;br /&gt;
      disable_cache = false&lt;br /&gt;
      cache_dir = &amp;quot;cache&amp;quot;&lt;br /&gt;
     [runners.cache]&lt;br /&gt;
     [runners.cache.s3]&lt;br /&gt;
     [runners.cache.gcs]&lt;br /&gt;
     [runners.cache.azure]&lt;br /&gt;
&lt;br /&gt;
Return to https://gitlab.docking.org/admin/runners, where the new runner will be displayed. Edit the runner’s tags to describe what the runner will be deploying. For example, the test server has the tag ‘cartblanche-dev’ and the production server has ‘cartblanche22’. &lt;br /&gt;
Once the tag is set, a new job will need to be added to the gitlab deployment script to deploy the correct branch to the correct machine. https://gitlab.docking.org/chinzo/molecule-shopping-cart/-/blob/master/.gitlab-ci.yml &lt;br /&gt;
&lt;br /&gt;
A sample job will look like so:&lt;br /&gt;
&lt;br /&gt;
  services:&lt;br /&gt;
    - redis:latest&lt;br /&gt;
  &#039;&#039;&#039;deploy-dev&#039;&#039;&#039; job:&lt;br /&gt;
      &#039;&#039;&#039;only:&lt;br /&gt;
          - dev&#039;&#039;&#039;&lt;br /&gt;
      stage: deploy&lt;br /&gt;
      services:&lt;br /&gt;
          - redis:latest&lt;br /&gt;
      &#039;&#039;&#039;tags:&lt;br /&gt;
          - cartblanche-dev&#039;&#039;&#039;&lt;br /&gt;
      script:&lt;br /&gt;
          - docker build -t &amp;quot;${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-0.1.${CI_JOB_ID}&amp;quot; .&lt;br /&gt;
          - docker stop ${CI_PROJECT_NAME}&lt;br /&gt;
          - docker rm ${CI_PROJECT_NAME}&lt;br /&gt;
          - docker stop redis&lt;br /&gt;
          - docker rm redis&lt;br /&gt;
          - docker run --net cartblanche --name redis -d redis&lt;br /&gt;
          - docker run --net cartblanche -v /nfs/db2/smallworld_anon_21Q4:/nfs/db3/private_smallworld_4th_gen/anon&lt;br /&gt;
                     -v /export/db4/smallworld-java:/export/db4/smallworld-java&lt;br /&gt;
                     -v /nfs/db3/private_smallworld_4th_gen/smallworld.cfg:/nfs/db3/private_smallworld_4th_gen/smallworld.cfg&lt;br /&gt;
                     -v /nfs/db3/private_smallworld_4th_gen/maps:/nfs/db3/private_smallworld_4th_gen/maps&lt;br /&gt;
                     --name ${CI_PROJECT_NAME} -d -p &#039;&#039;&#039;0.0.0.0:5068&#039;&#039;&#039;:5000 ${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-0.1.${CI_JOB_ID}&lt;br /&gt;
&lt;br /&gt;
* The name ‘deploy-dev’ refers to the job name. &lt;br /&gt;
&lt;br /&gt;
* &#039;only: -dev&#039; refers to the script only deploying the dev branch. More branches can be added to deploy pushes to different branches to the same machine. &lt;br /&gt;
&lt;br /&gt;
* &#039;tags: -cartblanche-dev&#039; refers to the job tags, which determines which machine will take care of that deployment job. This can be changed to the tag that was set up earlier. You can also add multiple tags to deploy the same branch (or branches) to multiple machines at the same time.&lt;br /&gt;
&lt;br /&gt;
* 0.0.0.0:5068 refers to the port that points to the application.&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cartblanche22_Build_Instructions&amp;diff=15491</id>
		<title>Cartblanche22 Build Instructions</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cartblanche22_Build_Instructions&amp;diff=15491"/>
		<updated>2023-08-17T18:39:13Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: /* Deployment Information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Development environment inside cluster==&lt;br /&gt;
&lt;br /&gt;
* Clone repo&lt;br /&gt;
  Git clone https://gitlab.docking.org/chinzo/molecule-shopping-cart&lt;br /&gt;
  Cd molecule-shopping-cart&lt;br /&gt;
* Create conda environment with python 3.7, install dependencies&lt;br /&gt;
  conda env create -f environment.yml&lt;br /&gt;
  conda activate cartblanche&lt;br /&gt;
&lt;br /&gt;
* Start application&lt;br /&gt;
  ./boot-test.sh&lt;br /&gt;
&lt;br /&gt;
== Deployment Information ==&lt;br /&gt;
Production builds are distributed among 3 machines&lt;br /&gt;
    - epyc2&lt;br /&gt;
    - n-9-38&lt;br /&gt;
    - n-1-18&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Useful Commands&#039;&#039;&#039; (Use these in the respective server to debug):&lt;br /&gt;
  docker restart molecule-shopping-cart (restart the docker container)&lt;br /&gt;
  docker logs molecule-shopping-cart (view app logs, only stdout)&lt;br /&gt;
  docker exec -it molecule-shopping-cart /bin/bash (open a shell inside of the docker container, useful for making quick minimal changes without having to redeploy)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To view error logs (stderr)&#039;&#039;&#039;&lt;br /&gt;
  docker exec -it molecule-shopping-cart /bin/bash&lt;br /&gt;
  cat std.log&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Some troubleshooting tips:&#039;&#039;&#039;&lt;br /&gt;
Cartblanche relies on other outside services (smallworld, arthur, databases)  so it’s good to check the status of those before looking into the code.&lt;br /&gt;
&lt;br /&gt;
For smallworld, check the status of api calls, or [https://sw.docking.org/search/view/?hlid=19842&amp;amp;draw=6&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=24&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1654029670029 run a sample query. ]&lt;br /&gt;
&lt;br /&gt;
For arthor, check the status of api class, or [https://arthor.docking.org//dt/ZINC-All-19Q4-1.4B/search?query=CC&amp;amp;type=Substructure&amp;amp;draw=2&amp;amp;start=0&amp;amp;length=80&amp;amp;flags=6144&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=alignment&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=false&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=sim&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=false&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false run a sample query].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For search errors (zincid, smiles, vendor), the docker app logs are usually very informative.&lt;br /&gt;
&lt;br /&gt;
== Deployment Process ==&lt;br /&gt;
Deployment is as simple as pushing changes to the respective branch. A docker image will be created with the new version of the code, which will then replace the current version. &lt;br /&gt;
To redeploy manually, go to https://gitlab.docking.org/chinzo/molecule-shopping-cart/-/pipelines/new&lt;br /&gt;
&lt;br /&gt;
== Setting up Auto-Deployment ==&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions on setting up a new gitlab runner, [https://gitlab.docking.org/admin/runners found here.]&lt;br /&gt;
&lt;br /&gt;
* Register the runner with the credentials provided in the link above.&lt;br /&gt;
&lt;br /&gt;
* Set ‘shell’ as the executor for the runner when prompted.&lt;br /&gt;
&lt;br /&gt;
* After configuration, the gitlab-runner config found in /etc/gitlab-runner/config.toml should look something like this: &lt;br /&gt;
&lt;br /&gt;
  oncurrent = 1&lt;br /&gt;
  check_interval = 0&lt;br /&gt;
  [session_server]&lt;br /&gt;
    session_timeout = 1800&lt;br /&gt;
  [[runners]]&lt;br /&gt;
    name = &amp;quot;cartblanche n-1-17&amp;quot;&lt;br /&gt;
    url = &amp;quot;http://gitlab.docking.org/&amp;quot;&lt;br /&gt;
    token = &amp;quot;Lvp2X3zRFAN_JQuVZK3y&amp;quot;&lt;br /&gt;
    privileged = true&lt;br /&gt;
    executor = &amp;quot;shell&amp;quot;&lt;br /&gt;
    builds_dir = &amp;quot;/home/cartblanche&amp;quot;&lt;br /&gt;
    [runners.custom_build_dir]&lt;br /&gt;
    [runners.docker]&lt;br /&gt;
      privileged = true&lt;br /&gt;
      disable_cache = false&lt;br /&gt;
      cache_dir = &amp;quot;cache&amp;quot;&lt;br /&gt;
     [runners.cache]&lt;br /&gt;
     [runners.cache.s3]&lt;br /&gt;
     [runners.cache.gcs]&lt;br /&gt;
     [runners.cache.azure]&lt;br /&gt;
&lt;br /&gt;
Return to https://gitlab.docking.org/admin/runners, where the new runner will be displayed. Edit the runner’s tags to describe what the runner will be deploying. For example, the test server has the tag ‘cartblanche-dev’ and the production server has ‘cartblanche22’. &lt;br /&gt;
Once the tag is set, a new job will need to be added to the gitlab deployment script to deploy the correct branch to the correct machine. https://gitlab.docking.org/chinzo/molecule-shopping-cart/-/blob/master/.gitlab-ci.yml &lt;br /&gt;
&lt;br /&gt;
A sample job will look like so:&lt;br /&gt;
&lt;br /&gt;
  services:&lt;br /&gt;
    - redis:latest&lt;br /&gt;
  &#039;&#039;&#039;deploy-dev&#039;&#039;&#039; job:&lt;br /&gt;
      &#039;&#039;&#039;only:&lt;br /&gt;
          - dev&#039;&#039;&#039;&lt;br /&gt;
      stage: deploy&lt;br /&gt;
      services:&lt;br /&gt;
          - redis:latest&lt;br /&gt;
      &#039;&#039;&#039;tags:&lt;br /&gt;
          - cartblanche-dev&#039;&#039;&#039;&lt;br /&gt;
      script:&lt;br /&gt;
          - docker build -t &amp;quot;${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-0.1.${CI_JOB_ID}&amp;quot; .&lt;br /&gt;
          - docker stop ${CI_PROJECT_NAME}&lt;br /&gt;
          - docker rm ${CI_PROJECT_NAME}&lt;br /&gt;
          - docker stop redis&lt;br /&gt;
          - docker rm redis&lt;br /&gt;
          - docker run --net cartblanche --name redis -d redis&lt;br /&gt;
          - docker run --net cartblanche -v /nfs/db2/smallworld_anon_21Q4:/nfs/db3/private_smallworld_4th_gen/anon&lt;br /&gt;
                     -v /export/db4/smallworld-java:/export/db4/smallworld-java&lt;br /&gt;
                     -v /nfs/db3/private_smallworld_4th_gen/smallworld.cfg:/nfs/db3/private_smallworld_4th_gen/smallworld.cfg&lt;br /&gt;
                     -v /nfs/db3/private_smallworld_4th_gen/maps:/nfs/db3/private_smallworld_4th_gen/maps&lt;br /&gt;
                     --name ${CI_PROJECT_NAME} -d -p &#039;&#039;&#039;0.0.0.0:5068&#039;&#039;&#039;:5000 ${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-0.1.${CI_JOB_ID}&lt;br /&gt;
&lt;br /&gt;
* The name ‘deploy-dev’ refers to the job name. &lt;br /&gt;
&lt;br /&gt;
* &#039;only: -dev&#039; refers to the script only deploying the dev branch. More branches can be added to deploy pushes to different branches to the same machine. &lt;br /&gt;
&lt;br /&gt;
* &#039;tags: -cartblanche-dev&#039; refers to the job tags, which determines which machine will take care of that deployment job. This can be changed to the tag that was set up earlier. You can also add multiple tags to deploy the same branch (or branches) to multiple machines at the same time.&lt;br /&gt;
&lt;br /&gt;
* 0.0.0.0:5068 refers to the port that points to the application.&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cartblanche22_Build_Instructions&amp;diff=15490</id>
		<title>Cartblanche22 Build Instructions</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cartblanche22_Build_Instructions&amp;diff=15490"/>
		<updated>2023-08-17T18:37:48Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: /* Local environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Development environment inside cluster==&lt;br /&gt;
&lt;br /&gt;
* Clone repo&lt;br /&gt;
  Git clone https://gitlab.docking.org/chinzo/molecule-shopping-cart&lt;br /&gt;
  Cd molecule-shopping-cart&lt;br /&gt;
* Create conda environment with python 3.7, install dependencies&lt;br /&gt;
  conda env create -f environment.yml&lt;br /&gt;
  conda activate cartblanche&lt;br /&gt;
&lt;br /&gt;
* Start application&lt;br /&gt;
  ./boot-test.sh&lt;br /&gt;
&lt;br /&gt;
== Deployment Information ==&lt;br /&gt;
Live site runs on n-9-22:5067. Pushing to master branch will deploy here. &lt;br /&gt;
Dev server runs on n-1-17:5068. Pushing to the dev branch will deploy to this server. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Useful Commands&#039;&#039;&#039; (Use these in the respective server to debug):&lt;br /&gt;
  docker restart molecule-shopping-cart (restart the docker container)&lt;br /&gt;
  docker logs molecule-shopping-cart (view app logs, only stdout)&lt;br /&gt;
  docker exec -it molecule-shopping-cart /bin/bash (open a shell inside of the docker container, useful for making quick minimal changes without having to redeploy)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To view error logs (stderr)&#039;&#039;&#039;&lt;br /&gt;
  docker exec -it molecule-shopping-cart /bin/bash&lt;br /&gt;
  cat std.log&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Some troubleshooting tips:&#039;&#039;&#039;&lt;br /&gt;
Cartblanche relies on other outside services (smallworld, arthur, databases)  so it’s good to check the status of those before looking into the code.&lt;br /&gt;
&lt;br /&gt;
For smallworld, check the status of api calls, or [https://sw.docking.org/search/view/?hlid=19842&amp;amp;draw=6&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=24&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1654029670029 run a sample query. ]&lt;br /&gt;
&lt;br /&gt;
For arthor, check the status of api class, or [https://arthor.docking.org//dt/ZINC-All-19Q4-1.4B/search?query=CC&amp;amp;type=Substructure&amp;amp;draw=2&amp;amp;start=0&amp;amp;length=80&amp;amp;flags=6144&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=alignment&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=false&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=sim&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=false&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false run a sample query].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For search errors (zincid, smiles, vendor), the docker app logs are usually very informative.&lt;br /&gt;
&lt;br /&gt;
== Deployment Process ==&lt;br /&gt;
Deployment is as simple as pushing changes to the respective branch. A docker image will be created with the new version of the code, which will then replace the current version. &lt;br /&gt;
To redeploy manually, go to https://gitlab.docking.org/chinzo/molecule-shopping-cart/-/pipelines/new&lt;br /&gt;
&lt;br /&gt;
== Setting up Auto-Deployment ==&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions on setting up a new gitlab runner, [https://gitlab.docking.org/admin/runners found here.]&lt;br /&gt;
&lt;br /&gt;
* Register the runner with the credentials provided in the link above.&lt;br /&gt;
&lt;br /&gt;
* Set ‘shell’ as the executor for the runner when prompted.&lt;br /&gt;
&lt;br /&gt;
* After configuration, the gitlab-runner config found in /etc/gitlab-runner/config.toml should look something like this: &lt;br /&gt;
&lt;br /&gt;
  oncurrent = 1&lt;br /&gt;
  check_interval = 0&lt;br /&gt;
  [session_server]&lt;br /&gt;
    session_timeout = 1800&lt;br /&gt;
  [[runners]]&lt;br /&gt;
    name = &amp;quot;cartblanche n-1-17&amp;quot;&lt;br /&gt;
    url = &amp;quot;http://gitlab.docking.org/&amp;quot;&lt;br /&gt;
    token = &amp;quot;Lvp2X3zRFAN_JQuVZK3y&amp;quot;&lt;br /&gt;
    privileged = true&lt;br /&gt;
    executor = &amp;quot;shell&amp;quot;&lt;br /&gt;
    builds_dir = &amp;quot;/home/cartblanche&amp;quot;&lt;br /&gt;
    [runners.custom_build_dir]&lt;br /&gt;
    [runners.docker]&lt;br /&gt;
      privileged = true&lt;br /&gt;
      disable_cache = false&lt;br /&gt;
      cache_dir = &amp;quot;cache&amp;quot;&lt;br /&gt;
     [runners.cache]&lt;br /&gt;
     [runners.cache.s3]&lt;br /&gt;
     [runners.cache.gcs]&lt;br /&gt;
     [runners.cache.azure]&lt;br /&gt;
&lt;br /&gt;
Return to https://gitlab.docking.org/admin/runners, where the new runner will be displayed. Edit the runner’s tags to describe what the runner will be deploying. For example, the test server has the tag ‘cartblanche-dev’ and the production server has ‘cartblanche22’. &lt;br /&gt;
Once the tag is set, a new job will need to be added to the gitlab deployment script to deploy the correct branch to the correct machine. https://gitlab.docking.org/chinzo/molecule-shopping-cart/-/blob/master/.gitlab-ci.yml &lt;br /&gt;
&lt;br /&gt;
A sample job will look like so:&lt;br /&gt;
&lt;br /&gt;
  services:&lt;br /&gt;
    - redis:latest&lt;br /&gt;
  &#039;&#039;&#039;deploy-dev&#039;&#039;&#039; job:&lt;br /&gt;
      &#039;&#039;&#039;only:&lt;br /&gt;
          - dev&#039;&#039;&#039;&lt;br /&gt;
      stage: deploy&lt;br /&gt;
      services:&lt;br /&gt;
          - redis:latest&lt;br /&gt;
      &#039;&#039;&#039;tags:&lt;br /&gt;
          - cartblanche-dev&#039;&#039;&#039;&lt;br /&gt;
      script:&lt;br /&gt;
          - docker build -t &amp;quot;${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-0.1.${CI_JOB_ID}&amp;quot; .&lt;br /&gt;
          - docker stop ${CI_PROJECT_NAME}&lt;br /&gt;
          - docker rm ${CI_PROJECT_NAME}&lt;br /&gt;
          - docker stop redis&lt;br /&gt;
          - docker rm redis&lt;br /&gt;
          - docker run --net cartblanche --name redis -d redis&lt;br /&gt;
          - docker run --net cartblanche -v /nfs/db2/smallworld_anon_21Q4:/nfs/db3/private_smallworld_4th_gen/anon&lt;br /&gt;
                     -v /export/db4/smallworld-java:/export/db4/smallworld-java&lt;br /&gt;
                     -v /nfs/db3/private_smallworld_4th_gen/smallworld.cfg:/nfs/db3/private_smallworld_4th_gen/smallworld.cfg&lt;br /&gt;
                     -v /nfs/db3/private_smallworld_4th_gen/maps:/nfs/db3/private_smallworld_4th_gen/maps&lt;br /&gt;
                     --name ${CI_PROJECT_NAME} -d -p &#039;&#039;&#039;0.0.0.0:5068&#039;&#039;&#039;:5000 ${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-0.1.${CI_JOB_ID}&lt;br /&gt;
&lt;br /&gt;
* The name ‘deploy-dev’ refers to the job name. &lt;br /&gt;
&lt;br /&gt;
* &#039;only: -dev&#039; refers to the script only deploying the dev branch. More branches can be added to deploy pushes to different branches to the same machine. &lt;br /&gt;
&lt;br /&gt;
* &#039;tags: -cartblanche-dev&#039; refers to the job tags, which determines which machine will take care of that deployment job. This can be changed to the tag that was set up earlier. You can also add multiple tags to deploy the same branch (or branches) to multiple machines at the same time.&lt;br /&gt;
&lt;br /&gt;
* 0.0.0.0:5068 refers to the port that points to the application.&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Zinc22:Searching&amp;diff=15457</id>
		<title>Zinc22:Searching</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Zinc22:Searching&amp;diff=15457"/>
		<updated>2023-06-29T17:49:15Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For the best zinc22 searching experience, we recommend using [https://cartblanche22.docking.org the cartblanche22 site].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Search by list of zinc ids ==&lt;br /&gt;
=== Through the Cartblanche22 website ===&lt;br /&gt;
  https://cartblanche22.docking.org/search/zincid&lt;br /&gt;
&lt;br /&gt;
=== curl command ===&lt;br /&gt;
&lt;br /&gt;
Below curl command returns a json file with all possible fields.&lt;br /&gt;
&lt;br /&gt;
 curl -X GET https://cartblanche22.docking.org/substances.txt -F zinc_ids=@test.txt -F output_fields=&#039;smiles,zinc_id&#039;&lt;br /&gt;
 &lt;br /&gt;
The search can also be run without supplying a txt file&lt;br /&gt;
&lt;br /&gt;
 curl -X GET https://cartblanche22.docking.org/substances.txt -F zinc_ids=”ZINCgs0000000OAi,ZINCgs0000000OAj&amp;quot; -F output_fields=&#039;smiles,zinc_id&#039;&lt;br /&gt;
&lt;br /&gt;
== Search by list of SMILES ==&lt;br /&gt;
=== Through the Cartblanche22 website ===&lt;br /&gt;
  https://cartblanche22.docking.org/search/smiles&lt;br /&gt;
&lt;br /&gt;
=== curl command ===&lt;br /&gt;
&lt;br /&gt;
Below curl command returns a json file with all possible fields. &lt;br /&gt;
&lt;br /&gt;
curl -X GET https://cartblanche22.docking.org/smiles.txt -F smiles=@smiles.txt&lt;br /&gt;
&lt;br /&gt;
Distance and anonymous distance of the search will be defaulted to 0 unless specified. &lt;br /&gt;
 curl -X GET https://cartblanche22.docking.org/smiles.txt -F smiles=@smiles.txt -F dist=2 -F adist=2&lt;br /&gt;
&lt;br /&gt;
== Search by list of supplier code ids ==&lt;br /&gt;
=== Through the Cartblanche22 website ===&lt;br /&gt;
  https://cartblanche22.docking.org/search/catitems&lt;br /&gt;
&lt;br /&gt;
=== curl command ===&lt;br /&gt;
&lt;br /&gt;
Below curl command returns a json file with all molecules available from that supplier, as well as all relevant molecule information. &lt;br /&gt;
&lt;br /&gt;
  curl -X GET https://cartblanche22.docking.org/catitems.txt -F supplier_codes=@sup.txt&lt;br /&gt;
&lt;br /&gt;
== Downloading a set of random molecules ==&lt;br /&gt;
=== Through the Cartblanche22 website ===&lt;br /&gt;
  https://cartblanche22.docking.org/search/random&lt;br /&gt;
=== curl command === &lt;br /&gt;
&lt;br /&gt;
The curl command returns a json file with the zinc_id and smiles of the specified number of random molecules. &lt;br /&gt;
&lt;br /&gt;
  curl https://cartblanche22.docking.org/substance/random.txt -F count=100 &lt;br /&gt;
&lt;br /&gt;
Subsets can be specified, but the search will pull from all available molecules unless otherwise specified.&lt;br /&gt;
&lt;br /&gt;
  curl https://cartblanche22.docking.org/substance/random.txt -F count=100 -F subset=&#039;lead-like&#039;&lt;br /&gt;
&lt;br /&gt;
== Sample output of a json formatted result with all available molecule data fields ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;catalogs&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;catalog_name&amp;quot;: &amp;quot;mH22P220&amp;quot;, &lt;br /&gt;
            &amp;quot;short_name&amp;quot;: &amp;quot;m&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ], &lt;br /&gt;
    &amp;quot;smiles&amp;quot;: &amp;quot;C=C(C)CN(C)[C@H](C)CNC(=O)c1nc(C)n2ccccc12&amp;quot;, &lt;br /&gt;
    &amp;quot;sub_id&amp;quot;: 41303101, &lt;br /&gt;
    &amp;quot;supplier_code&amp;quot;: [&lt;br /&gt;
        &amp;quot;M_275030__14114248__14126248__12659170&amp;quot;&lt;br /&gt;
    ], &lt;br /&gt;
    &amp;quot;tranche&amp;quot;: {&lt;br /&gt;
        &amp;quot;h_num&amp;quot;: &amp;quot;H22&amp;quot;, &lt;br /&gt;
        &amp;quot;logp&amp;quot;: &amp;quot;s&amp;quot;, &lt;br /&gt;
        &amp;quot;mwt&amp;quot;: &amp;quot;m&amp;quot;, &lt;br /&gt;
        &amp;quot;p_num&amp;quot;: &amp;quot;P220&amp;quot;, &lt;br /&gt;
        &amp;quot;tranche_id&amp;quot;: 1371&lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;zinc_id&amp;quot;: &amp;quot;ZINCms000002NiP3&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ZINC22]]&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Zinc22:Searching&amp;diff=15456</id>
		<title>Zinc22:Searching</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Zinc22:Searching&amp;diff=15456"/>
		<updated>2023-06-29T17:43:36Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: /* curl command */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Searching ZINC22:&lt;br /&gt;
&lt;br /&gt;
== Search by list of zinc ids ==&lt;br /&gt;
=== Through the Cartblanche22 website ===&lt;br /&gt;
  https://cartblanche22.docking.org/search/zincid&lt;br /&gt;
&lt;br /&gt;
=== curl command ===&lt;br /&gt;
&lt;br /&gt;
Below curl command returns a json file with all possible fields.&lt;br /&gt;
&lt;br /&gt;
 curl -X GET https://cartblanche22.docking.org/substances.txt -F zinc_ids=@test.txt -F output_fields=&#039;smiles,zinc_id&#039;&lt;br /&gt;
 &lt;br /&gt;
The search can also be run without supplying a txt file&lt;br /&gt;
&lt;br /&gt;
 curl -X GET https://cartblanche22.docking.org/substances.txt -F zinc_ids=”ZINCgs0000000OAi,ZINCgs0000000OAj&amp;quot; -F output_fields=&#039;smiles,zinc_id&#039;&lt;br /&gt;
&lt;br /&gt;
== Search by list of SMILES ==&lt;br /&gt;
=== Through the Cartblanche22 website ===&lt;br /&gt;
  https://cartblanche22.docking.org/search/smiles&lt;br /&gt;
&lt;br /&gt;
=== curl command ===&lt;br /&gt;
&lt;br /&gt;
Below curl command returns a json file with all possible fields. &lt;br /&gt;
&lt;br /&gt;
curl -X GET https://cartblanche22.docking.org/smiles.txt -F smiles=@smiles.txt&lt;br /&gt;
&lt;br /&gt;
Distance and anonymous distance of the search will be defaulted to 0 unless specified. &lt;br /&gt;
 curl -X GET https://cartblanche22.docking.org/smiles.txt -F smiles=@smiles.txt -F dist=2 -F adist=2&lt;br /&gt;
&lt;br /&gt;
== Search by list of supplier code ids ==&lt;br /&gt;
=== Through the Cartblanche22 website ===&lt;br /&gt;
  https://cartblanche22.docking.org/search/catitems&lt;br /&gt;
&lt;br /&gt;
=== curl command ===&lt;br /&gt;
&lt;br /&gt;
Below curl command returns a json file with all molecules available from that supplier, as well as all relevant molecule information. &lt;br /&gt;
&lt;br /&gt;
  curl -X GET https://cartblanche22.docking.org/catitems.txt -F supplier_codes=@sup.txt&lt;br /&gt;
&lt;br /&gt;
== Downloading a set of random molecules ==&lt;br /&gt;
=== Through the Cartblanche22 website ===&lt;br /&gt;
  https://cartblanche22.docking.org/search/random&lt;br /&gt;
=== curl command === &lt;br /&gt;
&lt;br /&gt;
The curl command returns a json file with the zinc_id and smiles of the specified number of random molecules. &lt;br /&gt;
&lt;br /&gt;
  curl https://cartblanche22.docking.org/substance/random.txt -F count=100 &lt;br /&gt;
&lt;br /&gt;
Subsets can be specified, but the search will pull from all available molecules unless otherwise specified.&lt;br /&gt;
&lt;br /&gt;
  curl https://cartblanche22.docking.org/substance/random.txt -F count=100 -F subset=&#039;lead-like&#039;&lt;br /&gt;
&lt;br /&gt;
== Sample output of a json formatted result with all available molecule data fields ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;catalogs&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;catalog_name&amp;quot;: &amp;quot;mH22P220&amp;quot;, &lt;br /&gt;
            &amp;quot;short_name&amp;quot;: &amp;quot;m&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ], &lt;br /&gt;
    &amp;quot;smiles&amp;quot;: &amp;quot;C=C(C)CN(C)[C@H](C)CNC(=O)c1nc(C)n2ccccc12&amp;quot;, &lt;br /&gt;
    &amp;quot;sub_id&amp;quot;: 41303101, &lt;br /&gt;
    &amp;quot;supplier_code&amp;quot;: [&lt;br /&gt;
        &amp;quot;M_275030__14114248__14126248__12659170&amp;quot;&lt;br /&gt;
    ], &lt;br /&gt;
    &amp;quot;tranche&amp;quot;: {&lt;br /&gt;
        &amp;quot;h_num&amp;quot;: &amp;quot;H22&amp;quot;, &lt;br /&gt;
        &amp;quot;logp&amp;quot;: &amp;quot;s&amp;quot;, &lt;br /&gt;
        &amp;quot;mwt&amp;quot;: &amp;quot;m&amp;quot;, &lt;br /&gt;
        &amp;quot;p_num&amp;quot;: &amp;quot;P220&amp;quot;, &lt;br /&gt;
        &amp;quot;tranche_id&amp;quot;: 1371&lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;zinc_id&amp;quot;: &amp;quot;ZINCms000002NiP3&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ZINC22]]&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Zinc22:Searching&amp;diff=15455</id>
		<title>Zinc22:Searching</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Zinc22:Searching&amp;diff=15455"/>
		<updated>2023-06-29T17:42:23Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: /* Search by list of supplier code ids */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Searching ZINC22:&lt;br /&gt;
&lt;br /&gt;
== Search by list of zinc ids ==&lt;br /&gt;
=== Through the Cartblanche22 website ===&lt;br /&gt;
  https://cartblanche22.docking.org/search/zincid&lt;br /&gt;
&lt;br /&gt;
=== curl command ===&lt;br /&gt;
&lt;br /&gt;
Below curl command returns a json file with all possible fields.&lt;br /&gt;
&lt;br /&gt;
 curl http://cartblanche22.docking.org/substances.json -F zinc_id-in=@/nfs/exd/zinc-22/H16/H16P220/H16P220-N.txt&lt;br /&gt;
 &lt;br /&gt;
The search can also be run without supplying a txt file&lt;br /&gt;
&lt;br /&gt;
 curl http://cartblanche22.docking.org/sublist -F zinc_id-in=”ZINCgs0000000OAi,ZINCgs0000000OAj&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Search by list of SMILES ==&lt;br /&gt;
=== Through the Cartblanche22 website ===&lt;br /&gt;
  https://cartblanche22.docking.org/search/smiles&lt;br /&gt;
&lt;br /&gt;
=== curl command ===&lt;br /&gt;
&lt;br /&gt;
Below curl command returns a json file with all possible fields. &lt;br /&gt;
&lt;br /&gt;
curl -X GET https://cartblanche22.docking.org/smiles.txt -F smiles=@smiles.txt&lt;br /&gt;
&lt;br /&gt;
Distance and anonymous distance of the search will be defaulted to 0 unless specified. &lt;br /&gt;
 curl -X GET https://cartblanche22.docking.org/smiles.txt -F smiles=@smiles.txt -F dist=2 -F adist=2&lt;br /&gt;
&lt;br /&gt;
== Search by list of supplier code ids ==&lt;br /&gt;
=== Through the Cartblanche22 website ===&lt;br /&gt;
  https://cartblanche22.docking.org/search/catitems&lt;br /&gt;
&lt;br /&gt;
=== curl command ===&lt;br /&gt;
&lt;br /&gt;
Below curl command returns a json file with all molecules available from that supplier, as well as all relevant molecule information. &lt;br /&gt;
&lt;br /&gt;
  curl -X GET https://cartblanche22.docking.org/catitems.txt -F supplier_codes=@sup.txt&lt;br /&gt;
&lt;br /&gt;
== Downloading a set of random molecules ==&lt;br /&gt;
=== Through the Cartblanche22 website ===&lt;br /&gt;
  https://cartblanche22.docking.org/search/random&lt;br /&gt;
=== curl command === &lt;br /&gt;
&lt;br /&gt;
The curl command returns a json file with the zinc_id and smiles of the specified number of random molecules. &lt;br /&gt;
&lt;br /&gt;
  curl https://cartblanche22.docking.org/substance/random.txt -F count=100 &lt;br /&gt;
&lt;br /&gt;
Subsets can be specified, but the search will pull from all available molecules unless otherwise specified.&lt;br /&gt;
&lt;br /&gt;
  curl https://cartblanche22.docking.org/substance/random.txt -F count=100 -F subset=&#039;lead-like&#039;&lt;br /&gt;
&lt;br /&gt;
== Sample output of a json formatted result with all available molecule data fields ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;catalogs&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;catalog_name&amp;quot;: &amp;quot;mH22P220&amp;quot;, &lt;br /&gt;
            &amp;quot;short_name&amp;quot;: &amp;quot;m&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ], &lt;br /&gt;
    &amp;quot;smiles&amp;quot;: &amp;quot;C=C(C)CN(C)[C@H](C)CNC(=O)c1nc(C)n2ccccc12&amp;quot;, &lt;br /&gt;
    &amp;quot;sub_id&amp;quot;: 41303101, &lt;br /&gt;
    &amp;quot;supplier_code&amp;quot;: [&lt;br /&gt;
        &amp;quot;M_275030__14114248__14126248__12659170&amp;quot;&lt;br /&gt;
    ], &lt;br /&gt;
    &amp;quot;tranche&amp;quot;: {&lt;br /&gt;
        &amp;quot;h_num&amp;quot;: &amp;quot;H22&amp;quot;, &lt;br /&gt;
        &amp;quot;logp&amp;quot;: &amp;quot;s&amp;quot;, &lt;br /&gt;
        &amp;quot;mwt&amp;quot;: &amp;quot;m&amp;quot;, &lt;br /&gt;
        &amp;quot;p_num&amp;quot;: &amp;quot;P220&amp;quot;, &lt;br /&gt;
        &amp;quot;tranche_id&amp;quot;: 1371&lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;zinc_id&amp;quot;: &amp;quot;ZINCms000002NiP3&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ZINC22]]&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Zinc22:Searching&amp;diff=15454</id>
		<title>Zinc22:Searching</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Zinc22:Searching&amp;diff=15454"/>
		<updated>2023-06-29T17:41:49Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: /* Search by list of SMILES */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Searching ZINC22:&lt;br /&gt;
&lt;br /&gt;
== Search by list of zinc ids ==&lt;br /&gt;
=== Through the Cartblanche22 website ===&lt;br /&gt;
  https://cartblanche22.docking.org/search/zincid&lt;br /&gt;
&lt;br /&gt;
=== curl command ===&lt;br /&gt;
&lt;br /&gt;
Below curl command returns a json file with all possible fields.&lt;br /&gt;
&lt;br /&gt;
 curl http://cartblanche22.docking.org/substances.json -F zinc_id-in=@/nfs/exd/zinc-22/H16/H16P220/H16P220-N.txt&lt;br /&gt;
 &lt;br /&gt;
The search can also be run without supplying a txt file&lt;br /&gt;
&lt;br /&gt;
 curl http://cartblanche22.docking.org/sublist -F zinc_id-in=”ZINCgs0000000OAi,ZINCgs0000000OAj&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Search by list of SMILES ==&lt;br /&gt;
=== Through the Cartblanche22 website ===&lt;br /&gt;
  https://cartblanche22.docking.org/search/smiles&lt;br /&gt;
&lt;br /&gt;
=== curl command ===&lt;br /&gt;
&lt;br /&gt;
Below curl command returns a json file with all possible fields. &lt;br /&gt;
&lt;br /&gt;
curl -X GET https://cartblanche22.docking.org/smiles.txt -F smiles=@smiles.txt&lt;br /&gt;
&lt;br /&gt;
Distance and anonymous distance of the search will be defaulted to 0 unless specified. &lt;br /&gt;
 curl -X GET https://cartblanche22.docking.org/smiles.txt -F smiles=@smiles.txt -F dist=2 -F adist=2&lt;br /&gt;
&lt;br /&gt;
== Search by list of supplier code ids ==&lt;br /&gt;
=== Through the Cartblanche22 website ===&lt;br /&gt;
  https://cartblanche22.docking.org/search/catitems&lt;br /&gt;
&lt;br /&gt;
=== curl command ===&lt;br /&gt;
&lt;br /&gt;
Below curl command returns a json file with all molecules available from that supplier, as well as all relevant molecule information. &lt;br /&gt;
&lt;br /&gt;
 curl https://cartblanche22.docking.org/catitems.txt -F supplier_code-in=@sup.txt&lt;br /&gt;
&lt;br /&gt;
== Downloading a set of random molecules ==&lt;br /&gt;
=== Through the Cartblanche22 website ===&lt;br /&gt;
  https://cartblanche22.docking.org/search/random&lt;br /&gt;
=== curl command === &lt;br /&gt;
&lt;br /&gt;
The curl command returns a json file with the zinc_id and smiles of the specified number of random molecules. &lt;br /&gt;
&lt;br /&gt;
  curl https://cartblanche22.docking.org/substance/random.txt -F count=100 &lt;br /&gt;
&lt;br /&gt;
Subsets can be specified, but the search will pull from all available molecules unless otherwise specified.&lt;br /&gt;
&lt;br /&gt;
  curl https://cartblanche22.docking.org/substance/random.txt -F count=100 -F subset=&#039;lead-like&#039;&lt;br /&gt;
&lt;br /&gt;
== Sample output of a json formatted result with all available molecule data fields ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;catalogs&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;catalog_name&amp;quot;: &amp;quot;mH22P220&amp;quot;, &lt;br /&gt;
            &amp;quot;short_name&amp;quot;: &amp;quot;m&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ], &lt;br /&gt;
    &amp;quot;smiles&amp;quot;: &amp;quot;C=C(C)CN(C)[C@H](C)CNC(=O)c1nc(C)n2ccccc12&amp;quot;, &lt;br /&gt;
    &amp;quot;sub_id&amp;quot;: 41303101, &lt;br /&gt;
    &amp;quot;supplier_code&amp;quot;: [&lt;br /&gt;
        &amp;quot;M_275030__14114248__14126248__12659170&amp;quot;&lt;br /&gt;
    ], &lt;br /&gt;
    &amp;quot;tranche&amp;quot;: {&lt;br /&gt;
        &amp;quot;h_num&amp;quot;: &amp;quot;H22&amp;quot;, &lt;br /&gt;
        &amp;quot;logp&amp;quot;: &amp;quot;s&amp;quot;, &lt;br /&gt;
        &amp;quot;mwt&amp;quot;: &amp;quot;m&amp;quot;, &lt;br /&gt;
        &amp;quot;p_num&amp;quot;: &amp;quot;P220&amp;quot;, &lt;br /&gt;
        &amp;quot;tranche_id&amp;quot;: 1371&lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;zinc_id&amp;quot;: &amp;quot;ZINCms000002NiP3&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ZINC22]]&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Manage_Lab_Websites&amp;diff=15401</id>
		<title>Manage Lab Websites</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Manage_Lab_Websites&amp;diff=15401"/>
		<updated>2023-05-17T19:24:17Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: /* List of Websites */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== List of Websites ==&lt;br /&gt;
Last updated on 05/17/2023&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Website&lt;br /&gt;
!Machine:Port&lt;br /&gt;
!Run on&lt;br /&gt;
!Hosted in (httpd/conf.d)&lt;br /&gt;
!Working&lt;br /&gt;
|-&lt;br /&gt;
|Amis: https://amis.docking.org/&lt;br /&gt;
|n-9-38:5066&lt;br /&gt;
|docker&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Arthor: https://arthor.docking.org/&lt;br /&gt;
|nun, samekh, n-9-22; Port 8000&lt;br /&gt;
|Screen&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|BKSLab: http://www.bkslab.org/&lt;br /&gt;
|gimel:5002&lt;br /&gt;
|Supervisord&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Blaster: https://blaster.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Cartblanche22: https://cartblanche22.docking.org/&lt;br /&gt;
|n-9-22:5068&lt;br /&gt;
|docker&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Covalent: http://covalent.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|DSF: https://dsf.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No (wrong website)&lt;br /&gt;
|-&lt;br /&gt;
|Duc: https://duc.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Dud: https://dud.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Dude18: http://dude18.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Dude: http://dude.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Dudez: http://dudez.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Excipients: http://excipients.docking.org/&lt;br /&gt;
|gimel:8093&lt;br /&gt;
|Supervisord&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Gitlab: https://gitlab.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|HG: https://hg.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|IrwinLab: http://irwinlab.compbio.ucsf.edu/&lt;br /&gt;
|gimel:5004&lt;br /&gt;
|Supervisord&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Khanh: http://khanh.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Metabolite: http://metabolite.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|showing wrong website&lt;br /&gt;
|-&lt;br /&gt;
|Deepchemworkshop: http://deepchemworkshop.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Prices: http://prices.docking.org/&lt;br /&gt;
|gimel:5022&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Psicquic: http://psicquic.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43)&lt;br /&gt;
|Yes (broken???)&lt;br /&gt;
|-&lt;br /&gt;
|Reactor: http://reactor.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Transporters: http://transporters.ucsf.bkslab.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Sea16: http://sea16.docking.org/&lt;br /&gt;
|gimel:8086&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|SEC: http://sec.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Smallworld Public: http://sw.docking.org/&lt;br /&gt;
|abacus:5020&lt;br /&gt;
|screen&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Smallworld Private: http://swp.docking.org/&lt;br /&gt;
|abacus:8080&lt;br /&gt;
|screen&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Smallworld Super Private: http://swc.docking.org/&lt;br /&gt;
|abacus:5099&lt;br /&gt;
|screen&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Stats: http://stats.docking.org/ &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Symp: http://symp.docking.org/ &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|TLDR http://tldr.docking.org/&lt;br /&gt;
|gimel2:5000 &lt;br /&gt;
|Supervisord&lt;br /&gt;
|Files2 (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Tool-Selector: http://tool-selector.ucsf.bkslab.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Transportal: http://transportal.docking.org/&lt;br /&gt;
|n-9-23 : port 8123&lt;br /&gt;
|screen&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Upload: http://upload.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Zinc12: http://zinc12.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|Zinc15: http://zinc15.docking.org/&lt;br /&gt;
|epyc2:5064&lt;br /&gt;
|docker&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Zinc20: http://zinc20.docking.org/&lt;br /&gt;
|epyc2:5065&lt;br /&gt;
|docker&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Restart Instructions after UPS==&lt;br /&gt;
=== For websites running on Docker ===&lt;br /&gt;
Login to machine using sudoer account. &lt;br /&gt;
 $ sudo docker ps //to list all apps, including non-running&lt;br /&gt;
 $ sudo docker start &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To restart a container&lt;br /&gt;
 $ sudo docker restart &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== For websites running on Screen ===&lt;br /&gt;
&lt;br /&gt;
==== SEA ====&lt;br /&gt;
SEA is running on a screen on gimel&lt;br /&gt;
&lt;br /&gt;
Become www on gimel&lt;br /&gt;
 $ cd /nfs/soft/www/apps/seadev/&lt;br /&gt;
 On bash shell&lt;br /&gt;
 $ source tools/anaconda2/bin/activate sea16&lt;br /&gt;
 $ cd work/seaware/seaware-academic&lt;br /&gt;
 $ make SEAserver-stop-devel&lt;br /&gt;
 $ make all&lt;br /&gt;
 $ make SEAserver-start-devel&lt;br /&gt;
 Ctrl A+D to detach screen&lt;br /&gt;
&lt;br /&gt;
==== Transportal ====&lt;br /&gt;
Login n-9-23 and become www&lt;br /&gt;
 $ screen -ls&lt;br /&gt;
 $ screen -r transportal&lt;br /&gt;
 $ cd  /mnt/nfs/soft/www/apps/transportal/&lt;br /&gt;
 $ source envs/production-3.6/bin/activate.csh&lt;br /&gt;
 $ cd /nfs/soft/www/home/apps/transportal/src/transportal_2022/transportal&lt;br /&gt;
 $ python manage.py runserver 0.0.0.0:8123&lt;br /&gt;
 Ctrl A+D to detach screen&lt;br /&gt;
&lt;br /&gt;
=== For websites running on Supervisord ===&lt;br /&gt;
==== Restart applications ====&lt;br /&gt;
* Become root on server the website runs on gimel&lt;br /&gt;
 $ supervisorctl status //to list all of current running apps&lt;br /&gt;
 $ supervisorctl restart &amp;lt;name&amp;gt;&lt;br /&gt;
   i.e &lt;br /&gt;
 $ supervisorctl restart bks-lab&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;TLDR&amp;lt;/b&amp;gt; is running on gimel2 and managed by supervisord&lt;br /&gt;
 $ supervisorctl restart tldr&lt;br /&gt;
==== Start Supervisord ====&lt;br /&gt;
 $ supervisord&lt;br /&gt;
&lt;br /&gt;
[[Category : Sysadmin]] [[Category : Khanh]]&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Manage_Lab_Websites&amp;diff=15400</id>
		<title>Manage Lab Websites</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Manage_Lab_Websites&amp;diff=15400"/>
		<updated>2023-05-17T19:20:23Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: /* List of Websites */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== List of Websites ==&lt;br /&gt;
Last updated on 05/17/2023&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Website&lt;br /&gt;
!Machine:Port&lt;br /&gt;
!Run on&lt;br /&gt;
!Hosted in (httpd/conf.d)&lt;br /&gt;
!Working&lt;br /&gt;
|-&lt;br /&gt;
|Amis: https://amis.docking.org/&lt;br /&gt;
|n-9-38&lt;br /&gt;
|docker&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Arthor: https://arthor.docking.org/&lt;br /&gt;
|nun, samekh, n-9-22; Port 8000&lt;br /&gt;
|Screen&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|BKSLab: http://www.bkslab.org/&lt;br /&gt;
|gimel:5002&lt;br /&gt;
|Supervisord&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Blaster: https://blaster.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Cartblanche22: https://cartblanche22.docking.org/&lt;br /&gt;
|n-9-22:5068&lt;br /&gt;
|docker&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Covalent: http://covalent.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|DSF: https://dsf.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No (wrong website)&lt;br /&gt;
|-&lt;br /&gt;
|Duc: https://duc.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Dud: https://dud.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Dude18: http://dude18.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Dude: http://dude.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Dudez: http://dudez.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Excipients: http://excipients.docking.org/&lt;br /&gt;
|gimel:8093&lt;br /&gt;
|Supervisord&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Gitlab: https://gitlab.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|HG: https://hg.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|IrwinLab: http://irwinlab.compbio.ucsf.edu/&lt;br /&gt;
|gimel:5004&lt;br /&gt;
|Supervisord&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Khanh: http://khanh.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Metabolite: http://metabolite.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|showing wrong website&lt;br /&gt;
|-&lt;br /&gt;
|Deepchemworkshop: http://deepchemworkshop.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Prices: http://prices.docking.org/&lt;br /&gt;
|gimel:5022&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Psicquic: http://psicquic.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43)&lt;br /&gt;
|Yes (broken???)&lt;br /&gt;
|-&lt;br /&gt;
|Reactor: http://reactor.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Transporters: http://transporters.ucsf.bkslab.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Sea16: http://sea16.docking.org/&lt;br /&gt;
|gimel:8086&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|SEC: http://sec.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Smallworld Public: http://sw.docking.org/&lt;br /&gt;
|abacus:5020&lt;br /&gt;
|screen&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Smallworld Private: http://swp.docking.org/&lt;br /&gt;
|abacus:8080&lt;br /&gt;
|screen&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Smallworld Super Private: http://swc.docking.org/&lt;br /&gt;
|abacus:5099&lt;br /&gt;
|screen&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Stats: http://stats.docking.org/ &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Symp: http://symp.docking.org/ &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|TLDR http://tldr.docking.org/&lt;br /&gt;
|gimel2:5000 &lt;br /&gt;
|Supervisord&lt;br /&gt;
|Files2 (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Tool-Selector: http://tool-selector.ucsf.bkslab.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Transportal: http://transportal.docking.org/&lt;br /&gt;
|n-9-23 : port 8123&lt;br /&gt;
|screen&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Upload: http://upload.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Zinc12: http://zinc12.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|Zinc15: http://zinc15.docking.org/&lt;br /&gt;
|epyc2:5064&lt;br /&gt;
|docker&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Zinc20: http://zinc20.docking.org/&lt;br /&gt;
|epyc2:5065&lt;br /&gt;
|docker&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Restart Instructions after UPS==&lt;br /&gt;
=== For websites running on Docker ===&lt;br /&gt;
Login to machine using sudoer account. &lt;br /&gt;
 $ sudo docker ps //to list all apps, including non-running&lt;br /&gt;
 $ sudo docker start &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To restart a container&lt;br /&gt;
 $ sudo docker restart &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== For websites running on Screen ===&lt;br /&gt;
&lt;br /&gt;
==== SEA ====&lt;br /&gt;
SEA is running on a screen on gimel&lt;br /&gt;
&lt;br /&gt;
Become www on gimel&lt;br /&gt;
 $ cd /nfs/soft/www/apps/seadev/&lt;br /&gt;
 On bash shell&lt;br /&gt;
 $ source tools/anaconda2/bin/activate sea16&lt;br /&gt;
 $ cd work/seaware/seaware-academic&lt;br /&gt;
 $ make SEAserver-stop-devel&lt;br /&gt;
 $ make all&lt;br /&gt;
 $ make SEAserver-start-devel&lt;br /&gt;
 Ctrl A+D to detach screen&lt;br /&gt;
&lt;br /&gt;
==== Transportal ====&lt;br /&gt;
Login n-9-23 and become www&lt;br /&gt;
 $ screen -ls&lt;br /&gt;
 $ screen -r transportal&lt;br /&gt;
 $ cd  /mnt/nfs/soft/www/apps/transportal/&lt;br /&gt;
 $ source envs/production-3.6/bin/activate.csh&lt;br /&gt;
 $ cd /nfs/soft/www/home/apps/transportal/src/transportal_2022/transportal&lt;br /&gt;
 $ python manage.py runserver 0.0.0.0:8123&lt;br /&gt;
 Ctrl A+D to detach screen&lt;br /&gt;
&lt;br /&gt;
=== For websites running on Supervisord ===&lt;br /&gt;
==== Restart applications ====&lt;br /&gt;
* Become root on server the website runs on gimel&lt;br /&gt;
 $ supervisorctl status //to list all of current running apps&lt;br /&gt;
 $ supervisorctl restart &amp;lt;name&amp;gt;&lt;br /&gt;
   i.e &lt;br /&gt;
 $ supervisorctl restart bks-lab&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;TLDR&amp;lt;/b&amp;gt; is running on gimel2 and managed by supervisord&lt;br /&gt;
 $ supervisorctl restart tldr&lt;br /&gt;
==== Start Supervisord ====&lt;br /&gt;
 $ supervisord&lt;br /&gt;
&lt;br /&gt;
[[Category : Sysadmin]] [[Category : Khanh]]&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Manage_Lab_Websites&amp;diff=15399</id>
		<title>Manage Lab Websites</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Manage_Lab_Websites&amp;diff=15399"/>
		<updated>2023-05-17T19:19:35Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: /* List of Websites */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== List of Websites ==&lt;br /&gt;
Last updated on 05/17/2023&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Website&lt;br /&gt;
!Machine:Port&lt;br /&gt;
!Run on&lt;br /&gt;
!Hosted in (httpd/conf.d)&lt;br /&gt;
!Working&lt;br /&gt;
|-&lt;br /&gt;
|Amis: https://amis.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Arthor: https://arthor.docking.org/&lt;br /&gt;
|nun, samekh, n-9-22; Port 8000&lt;br /&gt;
|Screen&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|BKSLab: http://www.bkslab.org/&lt;br /&gt;
|gimel:5002&lt;br /&gt;
|Supervisord&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Blaster: https://blaster.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Cartblanche22: https://cartblanche22.docking.org/&lt;br /&gt;
|n-9-22:5068&lt;br /&gt;
|docker&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Covalent: http://covalent.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|DSF: https://dsf.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No (wrong website)&lt;br /&gt;
|-&lt;br /&gt;
|Duc: https://duc.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Dud: https://dud.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Dude18: http://dude18.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Dude: http://dude.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Dudez: http://dudez.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Excipients: http://excipients.docking.org/&lt;br /&gt;
|gimel:8093&lt;br /&gt;
|Supervisord&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Gitlab: https://gitlab.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|HG: https://hg.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|IrwinLab: http://irwinlab.compbio.ucsf.edu/&lt;br /&gt;
|gimel:5004&lt;br /&gt;
|Supervisord&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Khanh: http://khanh.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Metabolite: http://metabolite.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|showing wrong website&lt;br /&gt;
|-&lt;br /&gt;
|Deepchemworkshop: http://deepchemworkshop.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Prices: http://prices.docking.org/&lt;br /&gt;
|gimel:5022&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Psicquic: http://psicquic.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43)&lt;br /&gt;
|Yes (broken???)&lt;br /&gt;
|-&lt;br /&gt;
|Reactor: http://reactor.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Transporters: http://transporters.ucsf.bkslab.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Sea16: http://sea16.docking.org/&lt;br /&gt;
|gimel:8086&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|SEC: http://sec.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Smallworld Public: http://sw.docking.org/&lt;br /&gt;
|abacus:5020&lt;br /&gt;
|screen&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Smallworld Private: http://swp.docking.org/&lt;br /&gt;
|abacus:8080&lt;br /&gt;
|screen&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Smallworld Super Private: http://swc.docking.org/&lt;br /&gt;
|abacus:5099&lt;br /&gt;
|screen&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Stats: http://stats.docking.org/ &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Symp: http://symp.docking.org/ &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|TLDR http://tldr.docking.org/&lt;br /&gt;
|gimel2:5000 &lt;br /&gt;
|Supervisord&lt;br /&gt;
|Files2 (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Tool-Selector: http://tool-selector.ucsf.bkslab.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Transportal: http://transportal.docking.org/&lt;br /&gt;
|n-9-23 : port 8123&lt;br /&gt;
|screen&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Upload: http://upload.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Zinc12: http://zinc12.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|Zinc15: http://zinc15.docking.org/&lt;br /&gt;
|epyc2:5064&lt;br /&gt;
|docker&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Zinc20: http://zinc20.docking.org/&lt;br /&gt;
|epyc2:5065&lt;br /&gt;
|docker&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Restart Instructions after UPS==&lt;br /&gt;
=== For websites running on Docker ===&lt;br /&gt;
Login to machine using sudoer account. &lt;br /&gt;
 $ sudo docker ps //to list all apps, including non-running&lt;br /&gt;
 $ sudo docker start &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To restart a container&lt;br /&gt;
 $ sudo docker restart &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== For websites running on Screen ===&lt;br /&gt;
&lt;br /&gt;
==== SEA ====&lt;br /&gt;
SEA is running on a screen on gimel&lt;br /&gt;
&lt;br /&gt;
Become www on gimel&lt;br /&gt;
 $ cd /nfs/soft/www/apps/seadev/&lt;br /&gt;
 On bash shell&lt;br /&gt;
 $ source tools/anaconda2/bin/activate sea16&lt;br /&gt;
 $ cd work/seaware/seaware-academic&lt;br /&gt;
 $ make SEAserver-stop-devel&lt;br /&gt;
 $ make all&lt;br /&gt;
 $ make SEAserver-start-devel&lt;br /&gt;
 Ctrl A+D to detach screen&lt;br /&gt;
&lt;br /&gt;
==== Transportal ====&lt;br /&gt;
Login n-9-23 and become www&lt;br /&gt;
 $ screen -ls&lt;br /&gt;
 $ screen -r transportal&lt;br /&gt;
 $ cd  /mnt/nfs/soft/www/apps/transportal/&lt;br /&gt;
 $ source envs/production-3.6/bin/activate.csh&lt;br /&gt;
 $ cd /nfs/soft/www/home/apps/transportal/src/transportal_2022/transportal&lt;br /&gt;
 $ python manage.py runserver 0.0.0.0:8123&lt;br /&gt;
 Ctrl A+D to detach screen&lt;br /&gt;
&lt;br /&gt;
=== For websites running on Supervisord ===&lt;br /&gt;
==== Restart applications ====&lt;br /&gt;
* Become root on server the website runs on gimel&lt;br /&gt;
 $ supervisorctl status //to list all of current running apps&lt;br /&gt;
 $ supervisorctl restart &amp;lt;name&amp;gt;&lt;br /&gt;
   i.e &lt;br /&gt;
 $ supervisorctl restart bks-lab&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;TLDR&amp;lt;/b&amp;gt; is running on gimel2 and managed by supervisord&lt;br /&gt;
 $ supervisorctl restart tldr&lt;br /&gt;
==== Start Supervisord ====&lt;br /&gt;
 $ supervisord&lt;br /&gt;
&lt;br /&gt;
[[Category : Sysadmin]] [[Category : Khanh]]&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Manage_Lab_Websites&amp;diff=15398</id>
		<title>Manage Lab Websites</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Manage_Lab_Websites&amp;diff=15398"/>
		<updated>2023-05-17T19:18:47Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: /* Restart Instructions after UPS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== List of Websites ==&lt;br /&gt;
Last updated on 05/17/2023&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Website&lt;br /&gt;
!Machine:Port&lt;br /&gt;
!Run on&lt;br /&gt;
!Hosted in (httpd/conf.d)&lt;br /&gt;
!Working&lt;br /&gt;
|-&lt;br /&gt;
|Amis: https://amis.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Arthor: https://arthor.docking.org/&lt;br /&gt;
|nun, samekh, n-9-22; Port 8000&lt;br /&gt;
|Screen&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|BKSLab: http://www.bkslab.org/&lt;br /&gt;
|gimel:5002&lt;br /&gt;
|Supervisord&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Blaster: https://blaster.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Cartblanche22: https://cartblanche22.docking.org/&lt;br /&gt;
|n-9-22:5068&lt;br /&gt;
|docker&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Covalent: http://covalent.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|DSF: https://dsf.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No (wrong website)&lt;br /&gt;
|-&lt;br /&gt;
|Duc: https://duc.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Dud: https://dud.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Dude18: http://dude18.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Dude: http://dude.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Dudez: http://dudez.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Excipients: http://excipients.docking.org/&lt;br /&gt;
|gimel:8093&lt;br /&gt;
|Supervisord&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Gitlab: https://gitlab.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|HG: https://hg.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|IrwinLab: http://irwinlab.compbio.ucsf.edu/&lt;br /&gt;
|gimel:5004&lt;br /&gt;
|Supervisord&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Khanh: http://khanh.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Metabolite: http://metabolite.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|showing wrong website&lt;br /&gt;
|-&lt;br /&gt;
|Deepchemworkshop: http://deepchemworkshop.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Prices: http://prices.docking.org/&lt;br /&gt;
|gimel:5022&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Psicquic: http://psicquic.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43)&lt;br /&gt;
|Yes (broken???)&lt;br /&gt;
|-&lt;br /&gt;
|Reactor: http://reactor.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Transporters: http://transporters.ucsf.bkslab.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Sea16: http://sea16.docking.org/&lt;br /&gt;
|gimel:8086&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|SEC: http://sec.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Smallworld Public: http://sw.docking.org/&lt;br /&gt;
|abacus:5020&lt;br /&gt;
|screen&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Smallworld Private: http://swp.docking.org/&lt;br /&gt;
|abacus:8080&lt;br /&gt;
|screen&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Smallworld Super Private: http://swc.docking.org/&lt;br /&gt;
|abacus:5099&lt;br /&gt;
|screen&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Stats: http://stats.docking.org/ &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Symp: http://symp.docking.org/ &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|TLDR http://tldr.docking.org/&lt;br /&gt;
|gimel2:5000 &lt;br /&gt;
|Supervisord&lt;br /&gt;
|Files2 (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Tool-Selector: http://tool-selector.ucsf.bkslab.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Transportal: http://transportal.docking.org/&lt;br /&gt;
|n-9-23 : port 8123&lt;br /&gt;
|screen&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Upload: http://upload.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Zinc12: http://zinc12.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|Zinc15: http://zinc15.docking.org/&lt;br /&gt;
|epyc2:5064&lt;br /&gt;
|docker&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Zinc20: http://zinc20.docking.org/&lt;br /&gt;
|epyc2:5065&lt;br /&gt;
|docker&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Restart Instructions after UPS==&lt;br /&gt;
=== For websites running on Docker ===&lt;br /&gt;
Login to machine using sudoer account. &lt;br /&gt;
 $ sudo docker ps //to list all apps, including non-running&lt;br /&gt;
 $ sudo docker start &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To restart a container&lt;br /&gt;
 $ sudo docker restart &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== For websites running on Screen ===&lt;br /&gt;
&lt;br /&gt;
==== SEA ====&lt;br /&gt;
SEA is running on a screen on gimel&lt;br /&gt;
&lt;br /&gt;
Become www on gimel&lt;br /&gt;
 $ cd /nfs/soft/www/apps/seadev/&lt;br /&gt;
 On bash shell&lt;br /&gt;
 $ source tools/anaconda2/bin/activate sea16&lt;br /&gt;
 $ cd work/seaware/seaware-academic&lt;br /&gt;
 $ make SEAserver-stop-devel&lt;br /&gt;
 $ make all&lt;br /&gt;
 $ make SEAserver-start-devel&lt;br /&gt;
 Ctrl A+D to detach screen&lt;br /&gt;
&lt;br /&gt;
==== Transportal ====&lt;br /&gt;
Login n-9-23 and become www&lt;br /&gt;
 $ screen -ls&lt;br /&gt;
 $ screen -r transportal&lt;br /&gt;
 $ cd  /mnt/nfs/soft/www/apps/transportal/&lt;br /&gt;
 $ source envs/production-3.6/bin/activate.csh&lt;br /&gt;
 $ cd /nfs/soft/www/home/apps/transportal/src/transportal_2022/transportal&lt;br /&gt;
 $ python manage.py runserver 0.0.0.0:8123&lt;br /&gt;
 Ctrl A+D to detach screen&lt;br /&gt;
&lt;br /&gt;
=== For websites running on Supervisord ===&lt;br /&gt;
==== Restart applications ====&lt;br /&gt;
* Become root on server the website runs on gimel&lt;br /&gt;
 $ supervisorctl status //to list all of current running apps&lt;br /&gt;
 $ supervisorctl restart &amp;lt;name&amp;gt;&lt;br /&gt;
   i.e &lt;br /&gt;
 $ supervisorctl restart bks-lab&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;TLDR&amp;lt;/b&amp;gt; is running on gimel2 and managed by supervisord&lt;br /&gt;
 $ supervisorctl restart tldr&lt;br /&gt;
==== Start Supervisord ====&lt;br /&gt;
 $ supervisord&lt;br /&gt;
&lt;br /&gt;
[[Category : Sysadmin]] [[Category : Khanh]]&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Manage_Lab_Websites&amp;diff=15397</id>
		<title>Manage Lab Websites</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Manage_Lab_Websites&amp;diff=15397"/>
		<updated>2023-05-17T19:14:56Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: /* List of Websites */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== List of Websites ==&lt;br /&gt;
Last updated on 05/17/2023&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Website&lt;br /&gt;
!Machine:Port&lt;br /&gt;
!Run on&lt;br /&gt;
!Hosted in (httpd/conf.d)&lt;br /&gt;
!Working&lt;br /&gt;
|-&lt;br /&gt;
|Amis: https://amis.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Arthor: https://arthor.docking.org/&lt;br /&gt;
|nun, samekh, n-9-22; Port 8000&lt;br /&gt;
|Screen&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|BKSLab: http://www.bkslab.org/&lt;br /&gt;
|gimel:5002&lt;br /&gt;
|Supervisord&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Blaster: https://blaster.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Cartblanche22: https://cartblanche22.docking.org/&lt;br /&gt;
|n-9-22:5068&lt;br /&gt;
|docker&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Covalent: http://covalent.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|DSF: https://dsf.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No (wrong website)&lt;br /&gt;
|-&lt;br /&gt;
|Duc: https://duc.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Dud: https://dud.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Dude18: http://dude18.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Dude: http://dude.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Dudez: http://dudez.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Excipients: http://excipients.docking.org/&lt;br /&gt;
|gimel:8093&lt;br /&gt;
|Supervisord&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Gitlab: https://gitlab.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|HG: https://hg.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|IrwinLab: http://irwinlab.compbio.ucsf.edu/&lt;br /&gt;
|gimel:5004&lt;br /&gt;
|Supervisord&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Khanh: http://khanh.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Metabolite: http://metabolite.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|showing wrong website&lt;br /&gt;
|-&lt;br /&gt;
|Deepchemworkshop: http://deepchemworkshop.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Prices: http://prices.docking.org/&lt;br /&gt;
|gimel:5022&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Psicquic: http://psicquic.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43)&lt;br /&gt;
|Yes (broken???)&lt;br /&gt;
|-&lt;br /&gt;
|Reactor: http://reactor.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Transporters: http://transporters.ucsf.bkslab.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Sea16: http://sea16.docking.org/&lt;br /&gt;
|gimel:8086&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|SEC: http://sec.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Smallworld Public: http://sw.docking.org/&lt;br /&gt;
|abacus:5020&lt;br /&gt;
|screen&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Smallworld Private: http://swp.docking.org/&lt;br /&gt;
|abacus:8080&lt;br /&gt;
|screen&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Smallworld Super Private: http://swc.docking.org/&lt;br /&gt;
|abacus:5099&lt;br /&gt;
|screen&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Stats: http://stats.docking.org/ &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Symp: http://symp.docking.org/ &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|TLDR http://tldr.docking.org/&lt;br /&gt;
|gimel2:5000 &lt;br /&gt;
|Supervisord&lt;br /&gt;
|Files2 (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Tool-Selector: http://tool-selector.ucsf.bkslab.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Transportal: http://transportal.docking.org/&lt;br /&gt;
|n-9-23 : port 8123&lt;br /&gt;
|screen&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Upload: http://upload.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Zinc12: http://zinc12.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|Zinc15: http://zinc15.docking.org/&lt;br /&gt;
|epyc2:5064&lt;br /&gt;
|docker&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Zinc20: http://zinc20.docking.org/&lt;br /&gt;
|epyc2:5065&lt;br /&gt;
|docker&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Restart Instructions after UPS==&lt;br /&gt;
&lt;br /&gt;
=== ZINC ===&lt;br /&gt;
==== ZINC15 ====&lt;br /&gt;
login to n-9-23 and become www&lt;br /&gt;
 $ screen -r zinc-15&lt;br /&gt;
 $ cd /mnt/nfs/soft/www/apps/zinc15/envs/&lt;br /&gt;
 $ source production/bin/activate.csh&lt;br /&gt;
 $ cd /nfs/soft/www/apps/zinc15/envs/production/bin/&lt;br /&gt;
 $ sh ./zincserver.restart-backend.sh&lt;br /&gt;
&lt;br /&gt;
==== ZINC20 ====&lt;br /&gt;
log into n-9-22 and become www&lt;br /&gt;
 $ screen -r zinc20prod&lt;br /&gt;
 $ bash&lt;br /&gt;
 $ source source /mnt/nfs/home/devtest/anaconda3/bin/activate &lt;br /&gt;
 $ conda activate /nfs/soft/www/apps/zinc21/envs/development&lt;br /&gt;
 $ cd /nfs/soft/www/apps/zinc21/envs/development/bin/&lt;br /&gt;
 $ sh ./zincserver.restart-backend.sh&lt;br /&gt;
&lt;br /&gt;
=== For websites running on Screen ===&lt;br /&gt;
&lt;br /&gt;
==== SEA ====&lt;br /&gt;
SEA is running on a screen on gimel&lt;br /&gt;
&lt;br /&gt;
Become www on gimel&lt;br /&gt;
 $ cd /nfs/soft/www/apps/seadev/&lt;br /&gt;
 On bash shell&lt;br /&gt;
 $ source tools/anaconda2/bin/activate sea16&lt;br /&gt;
 $ cd work/seaware/seaware-academic&lt;br /&gt;
 $ make SEAserver-stop-devel&lt;br /&gt;
 $ make all&lt;br /&gt;
 $ make SEAserver-start-devel&lt;br /&gt;
 Ctrl A+D to detach screen&lt;br /&gt;
&lt;br /&gt;
==== Transportal ====&lt;br /&gt;
Login n-9-23 and become www&lt;br /&gt;
 $ screen -ls&lt;br /&gt;
 $ screen -r transportal&lt;br /&gt;
 $ cd  /mnt/nfs/soft/www/apps/transportal/&lt;br /&gt;
 $ source envs/production-3.6/bin/activate.csh&lt;br /&gt;
 $ cd /nfs/soft/www/home/apps/transportal/src/transportal_2022/transportal&lt;br /&gt;
 $ python manage.py runserver 0.0.0.0:8123&lt;br /&gt;
 Ctrl A+D to detach screen&lt;br /&gt;
&lt;br /&gt;
=== For websites running on Supervisord ===&lt;br /&gt;
==== Restart applications ====&lt;br /&gt;
* Become root on server the website runs on gimel&lt;br /&gt;
 $ supervisorctl status //to list all of current running apps&lt;br /&gt;
 $ supervisorctl restart &amp;lt;name&amp;gt;&lt;br /&gt;
   i.e &lt;br /&gt;
 $ supervisorctl restart bks-lab&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;TLDR&amp;lt;/b&amp;gt; is running on gimel2 and managed by supervisord&lt;br /&gt;
 $ supervisorctl restart tldr&lt;br /&gt;
==== Start Supervisord ====&lt;br /&gt;
 $ supervisord&lt;br /&gt;
&lt;br /&gt;
[[Category : Sysadmin]] [[Category : Khanh]]&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Manage_Lab_Websites&amp;diff=15396</id>
		<title>Manage Lab Websites</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Manage_Lab_Websites&amp;diff=15396"/>
		<updated>2023-05-17T19:14:43Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: /* List of Websites */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== List of Websites ==&lt;br /&gt;
Last updated on 05/27/2022&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Website&lt;br /&gt;
!Machine:Port&lt;br /&gt;
!Run on&lt;br /&gt;
!Hosted in (httpd/conf.d)&lt;br /&gt;
!Working&lt;br /&gt;
|-&lt;br /&gt;
|Amis: https://amis.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Arthor: https://arthor.docking.org/&lt;br /&gt;
|nun, samekh, n-9-22; Port 8000&lt;br /&gt;
|Screen&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|BKSLab: http://www.bkslab.org/&lt;br /&gt;
|gimel:5002&lt;br /&gt;
|Supervisord&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Blaster: https://blaster.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Cartblanche22: https://cartblanche22.docking.org/&lt;br /&gt;
|n-9-22:5068&lt;br /&gt;
|docker&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Covalent: http://covalent.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|DSF: https://dsf.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No (wrong website)&lt;br /&gt;
|-&lt;br /&gt;
|Duc: https://duc.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Dud: https://dud.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Dude18: http://dude18.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Dude: http://dude.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Dudez: http://dudez.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Excipients: http://excipients.docking.org/&lt;br /&gt;
|gimel:8093&lt;br /&gt;
|Supervisord&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Gitlab: https://gitlab.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|HG: https://hg.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|IrwinLab: http://irwinlab.compbio.ucsf.edu/&lt;br /&gt;
|gimel:5004&lt;br /&gt;
|Supervisord&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Khanh: http://khanh.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Metabolite: http://metabolite.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|showing wrong website&lt;br /&gt;
|-&lt;br /&gt;
|Deepchemworkshop: http://deepchemworkshop.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Prices: http://prices.docking.org/&lt;br /&gt;
|gimel:5022&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Psicquic: http://psicquic.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43)&lt;br /&gt;
|Yes (broken???)&lt;br /&gt;
|-&lt;br /&gt;
|Reactor: http://reactor.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Transporters: http://transporters.ucsf.bkslab.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Sea16: http://sea16.docking.org/&lt;br /&gt;
|gimel:8086&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|SEC: http://sec.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Smallworld Public: http://sw.docking.org/&lt;br /&gt;
|abacus:5020&lt;br /&gt;
|screen&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Smallworld Private: http://swp.docking.org/&lt;br /&gt;
|abacus:8080&lt;br /&gt;
|screen&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Smallworld Super Private: http://swc.docking.org/&lt;br /&gt;
|abacus:5099&lt;br /&gt;
|screen&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Stats: http://stats.docking.org/ &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Symp: http://symp.docking.org/ &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|TLDR http://tldr.docking.org/&lt;br /&gt;
|gimel2:5000 &lt;br /&gt;
|Supervisord&lt;br /&gt;
|Files2 (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Tool-Selector: http://tool-selector.ucsf.bkslab.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Transportal: http://transportal.docking.org/&lt;br /&gt;
|n-9-23 : port 8123&lt;br /&gt;
|screen&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Upload: http://upload.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Zinc12: http://zinc12.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|Zinc15: http://zinc15.docking.org/&lt;br /&gt;
|epyc2:5064&lt;br /&gt;
|docker&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Zinc20: http://zinc20.docking.org/&lt;br /&gt;
|epyc2:5065&lt;br /&gt;
|docker&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Restart Instructions after UPS==&lt;br /&gt;
&lt;br /&gt;
=== ZINC ===&lt;br /&gt;
==== ZINC15 ====&lt;br /&gt;
login to n-9-23 and become www&lt;br /&gt;
 $ screen -r zinc-15&lt;br /&gt;
 $ cd /mnt/nfs/soft/www/apps/zinc15/envs/&lt;br /&gt;
 $ source production/bin/activate.csh&lt;br /&gt;
 $ cd /nfs/soft/www/apps/zinc15/envs/production/bin/&lt;br /&gt;
 $ sh ./zincserver.restart-backend.sh&lt;br /&gt;
&lt;br /&gt;
==== ZINC20 ====&lt;br /&gt;
log into n-9-22 and become www&lt;br /&gt;
 $ screen -r zinc20prod&lt;br /&gt;
 $ bash&lt;br /&gt;
 $ source source /mnt/nfs/home/devtest/anaconda3/bin/activate &lt;br /&gt;
 $ conda activate /nfs/soft/www/apps/zinc21/envs/development&lt;br /&gt;
 $ cd /nfs/soft/www/apps/zinc21/envs/development/bin/&lt;br /&gt;
 $ sh ./zincserver.restart-backend.sh&lt;br /&gt;
&lt;br /&gt;
=== For websites running on Screen ===&lt;br /&gt;
&lt;br /&gt;
==== SEA ====&lt;br /&gt;
SEA is running on a screen on gimel&lt;br /&gt;
&lt;br /&gt;
Become www on gimel&lt;br /&gt;
 $ cd /nfs/soft/www/apps/seadev/&lt;br /&gt;
 On bash shell&lt;br /&gt;
 $ source tools/anaconda2/bin/activate sea16&lt;br /&gt;
 $ cd work/seaware/seaware-academic&lt;br /&gt;
 $ make SEAserver-stop-devel&lt;br /&gt;
 $ make all&lt;br /&gt;
 $ make SEAserver-start-devel&lt;br /&gt;
 Ctrl A+D to detach screen&lt;br /&gt;
&lt;br /&gt;
==== Transportal ====&lt;br /&gt;
Login n-9-23 and become www&lt;br /&gt;
 $ screen -ls&lt;br /&gt;
 $ screen -r transportal&lt;br /&gt;
 $ cd  /mnt/nfs/soft/www/apps/transportal/&lt;br /&gt;
 $ source envs/production-3.6/bin/activate.csh&lt;br /&gt;
 $ cd /nfs/soft/www/home/apps/transportal/src/transportal_2022/transportal&lt;br /&gt;
 $ python manage.py runserver 0.0.0.0:8123&lt;br /&gt;
 Ctrl A+D to detach screen&lt;br /&gt;
&lt;br /&gt;
=== For websites running on Supervisord ===&lt;br /&gt;
==== Restart applications ====&lt;br /&gt;
* Become root on server the website runs on gimel&lt;br /&gt;
 $ supervisorctl status //to list all of current running apps&lt;br /&gt;
 $ supervisorctl restart &amp;lt;name&amp;gt;&lt;br /&gt;
   i.e &lt;br /&gt;
 $ supervisorctl restart bks-lab&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;TLDR&amp;lt;/b&amp;gt; is running on gimel2 and managed by supervisord&lt;br /&gt;
 $ supervisorctl restart tldr&lt;br /&gt;
==== Start Supervisord ====&lt;br /&gt;
 $ supervisord&lt;br /&gt;
&lt;br /&gt;
[[Category : Sysadmin]] [[Category : Khanh]]&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Manage_Lab_Websites&amp;diff=15395</id>
		<title>Manage Lab Websites</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Manage_Lab_Websites&amp;diff=15395"/>
		<updated>2023-05-17T19:11:09Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: /* List of Websites */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== List of Websites ==&lt;br /&gt;
Last updated on 05/27/2022&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Website&lt;br /&gt;
!Machine:Port&lt;br /&gt;
!Run on&lt;br /&gt;
!Hosted in (httpd/conf.d)&lt;br /&gt;
!Working&lt;br /&gt;
|-&lt;br /&gt;
|Amis: https://amis.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Arthor: https://arthor.docking.org/&lt;br /&gt;
|nun, samekh, n-9-22; Port 8000&lt;br /&gt;
|Screen&lt;br /&gt;
|epyc&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|BKSLab: http://www.bkslab.org/&lt;br /&gt;
|gimel:5002&lt;br /&gt;
|Supervisord&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Blaster: https://blaster.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Cartblanche22: https://cartblanche22.docking.org/&lt;br /&gt;
|n-9-22:5068&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Covalent: http://covalent.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|DSF: https://dsf.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No (wrong website)&lt;br /&gt;
|-&lt;br /&gt;
|Duc: https://duc.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Dud: https://dud.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Dude18: http://dude18.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Dude: http://dude.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Dudez: http://dudez.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Excipients: http://excipients.docking.org/&lt;br /&gt;
|gimel:8093&lt;br /&gt;
|Supervisord&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Gitlab: https://gitlab.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|HG: https://hg.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|IrwinLab: http://irwinlab.compbio.ucsf.edu/&lt;br /&gt;
|gimel:5004&lt;br /&gt;
|Supervisord&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Khanh: http://khanh.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Metabolite: http://metabolite.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|showing wrong website&lt;br /&gt;
|-&lt;br /&gt;
|Deepchemworkshop: http://deepchemworkshop.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Prices: http://prices.docking.org/&lt;br /&gt;
|gimel:5022&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Psicquic: http://psicquic.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43)&lt;br /&gt;
|Yes (broken???)&lt;br /&gt;
|-&lt;br /&gt;
|Reactor: http://reactor.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Transporters: http://transporters.ucsf.bkslab.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Sea16: http://sea16.docking.org/&lt;br /&gt;
|gimel:8086&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|SEC: http://sec.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Smallworld Public: http://sw.docking.org/&lt;br /&gt;
|abacus:5020&lt;br /&gt;
|screen&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Smallworld Private: http://swp.docking.org/&lt;br /&gt;
|abacus:8080&lt;br /&gt;
|screen&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Smallworld Super Private: http://swc.docking.org/&lt;br /&gt;
|abacus:5099&lt;br /&gt;
|screen&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Stats: http://stats.docking.org/ &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|Symp: http://symp.docking.org/ &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|No&lt;br /&gt;
|-&lt;br /&gt;
|TLDR http://tldr.docking.org/&lt;br /&gt;
|gimel2:5000 &lt;br /&gt;
|Supervisord&lt;br /&gt;
|Files2 (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Tool-Selector: http://tool-selector.ucsf.bkslab.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Transportal: http://transportal.docking.org/&lt;br /&gt;
|n-9-23 : port 8123&lt;br /&gt;
|screen&lt;br /&gt;
|Vav (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Upload: http://upload.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Zinc12: http://zinc12.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Tau (169.230.26.43, can not be moved to files2)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|Zinc15: http://zinc.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|Zinc20: http://zinc20.docking.org/&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Files2 (169.230.75.3)&lt;br /&gt;
|Yes&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Restart Instructions after UPS==&lt;br /&gt;
&lt;br /&gt;
=== ZINC ===&lt;br /&gt;
==== ZINC15 ====&lt;br /&gt;
login to n-9-23 and become www&lt;br /&gt;
 $ screen -r zinc-15&lt;br /&gt;
 $ cd /mnt/nfs/soft/www/apps/zinc15/envs/&lt;br /&gt;
 $ source production/bin/activate.csh&lt;br /&gt;
 $ cd /nfs/soft/www/apps/zinc15/envs/production/bin/&lt;br /&gt;
 $ sh ./zincserver.restart-backend.sh&lt;br /&gt;
&lt;br /&gt;
==== ZINC20 ====&lt;br /&gt;
log into n-9-22 and become www&lt;br /&gt;
 $ screen -r zinc20prod&lt;br /&gt;
 $ bash&lt;br /&gt;
 $ source source /mnt/nfs/home/devtest/anaconda3/bin/activate &lt;br /&gt;
 $ conda activate /nfs/soft/www/apps/zinc21/envs/development&lt;br /&gt;
 $ cd /nfs/soft/www/apps/zinc21/envs/development/bin/&lt;br /&gt;
 $ sh ./zincserver.restart-backend.sh&lt;br /&gt;
&lt;br /&gt;
=== For websites running on Screen ===&lt;br /&gt;
&lt;br /&gt;
==== SEA ====&lt;br /&gt;
SEA is running on a screen on gimel&lt;br /&gt;
&lt;br /&gt;
Become www on gimel&lt;br /&gt;
 $ cd /nfs/soft/www/apps/seadev/&lt;br /&gt;
 On bash shell&lt;br /&gt;
 $ source tools/anaconda2/bin/activate sea16&lt;br /&gt;
 $ cd work/seaware/seaware-academic&lt;br /&gt;
 $ make SEAserver-stop-devel&lt;br /&gt;
 $ make all&lt;br /&gt;
 $ make SEAserver-start-devel&lt;br /&gt;
 Ctrl A+D to detach screen&lt;br /&gt;
&lt;br /&gt;
==== Transportal ====&lt;br /&gt;
Login n-9-23 and become www&lt;br /&gt;
 $ screen -ls&lt;br /&gt;
 $ screen -r transportal&lt;br /&gt;
 $ cd  /mnt/nfs/soft/www/apps/transportal/&lt;br /&gt;
 $ source envs/production-3.6/bin/activate.csh&lt;br /&gt;
 $ cd /nfs/soft/www/home/apps/transportal/src/transportal_2022/transportal&lt;br /&gt;
 $ python manage.py runserver 0.0.0.0:8123&lt;br /&gt;
 Ctrl A+D to detach screen&lt;br /&gt;
&lt;br /&gt;
=== For websites running on Supervisord ===&lt;br /&gt;
==== Restart applications ====&lt;br /&gt;
* Become root on server the website runs on gimel&lt;br /&gt;
 $ supervisorctl status //to list all of current running apps&lt;br /&gt;
 $ supervisorctl restart &amp;lt;name&amp;gt;&lt;br /&gt;
   i.e &lt;br /&gt;
 $ supervisorctl restart bks-lab&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;TLDR&amp;lt;/b&amp;gt; is running on gimel2 and managed by supervisord&lt;br /&gt;
 $ supervisorctl restart tldr&lt;br /&gt;
==== Start Supervisord ====&lt;br /&gt;
 $ supervisord&lt;br /&gt;
&lt;br /&gt;
[[Category : Sysadmin]] [[Category : Khanh]]&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Zinc22:Searching&amp;diff=15114</id>
		<title>Zinc22:Searching</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Zinc22:Searching&amp;diff=15114"/>
		<updated>2023-01-27T20:16:29Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: /* Search by list of supplier code ids */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Searching ZINC22:&lt;br /&gt;
&lt;br /&gt;
== Search by list of zinc ids ==&lt;br /&gt;
=== Through the Cartblanche22 website ===&lt;br /&gt;
  https://cartblanche22.docking.org/search/zincid&lt;br /&gt;
&lt;br /&gt;
=== curl command ===&lt;br /&gt;
&lt;br /&gt;
Below curl command returns a json file with all possible fields.&lt;br /&gt;
&lt;br /&gt;
 curl http://cartblanche22.docking.org/substances.json -F zinc_id-in=@/nfs/exd/zinc-22/H16/H16P220/H16P220-N.txt&lt;br /&gt;
 &lt;br /&gt;
The search can also be run without supplying a txt file&lt;br /&gt;
&lt;br /&gt;
 curl http://cartblanche22.docking.org/sublist -F zinc_id-in=”ZINCgs0000000OAi,ZINCgs0000000OAj&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Search by list of SMILES ==&lt;br /&gt;
=== Through the Cartblanche22 website ===&lt;br /&gt;
  https://cartblanche22.docking.org/search/smiles&lt;br /&gt;
&lt;br /&gt;
=== curl command ===&lt;br /&gt;
&lt;br /&gt;
Below curl command returns a json file with all possible fields. &lt;br /&gt;
&lt;br /&gt;
 curl http://cartblanche22.docking.org/smiles.json -F zinc_id-in=@/nfs/exd/zinc-22/H16/H16P220/H16P220-N.txt &lt;br /&gt;
&lt;br /&gt;
Distance and anonymous distance of the search will be defaulted to 0 unless specified. &lt;br /&gt;
 curl https://cartblanche22.docking.org/smiles.txt -F zinc_id-in=@/nfs/exd/zinc-22/H16/H16P220/H16P220-N.txt  -F dist=4 -F adist=4&lt;br /&gt;
 &lt;br /&gt;
== Search by list of supplier code ids ==&lt;br /&gt;
=== Through the Cartblanche22 website ===&lt;br /&gt;
  https://cartblanche22.docking.org/search/catitems&lt;br /&gt;
&lt;br /&gt;
=== curl command ===&lt;br /&gt;
&lt;br /&gt;
Below curl command returns a json file with all molecules available from that supplier, as well as all relevant molecule information. &lt;br /&gt;
&lt;br /&gt;
 curl https://cartblanche22.docking.org/catitems.txt -F supplier_code-in=@sup.txt&lt;br /&gt;
&lt;br /&gt;
== Downloading a set of random molecules ==&lt;br /&gt;
=== Through the Cartblanche22 website ===&lt;br /&gt;
  https://cartblanche22.docking.org/search/random&lt;br /&gt;
=== curl command === &lt;br /&gt;
&lt;br /&gt;
The curl command returns a json file with the zinc_id and smiles of the specified number of random molecules. &lt;br /&gt;
&lt;br /&gt;
  curl https://cartblanche22.docking.org/substance/random.txt -F count=100 &lt;br /&gt;
&lt;br /&gt;
Subsets can be specified, but the search will pull from all available molecules unless otherwise specified.&lt;br /&gt;
&lt;br /&gt;
  curl https://cartblanche22.docking.org/substance/random.txt -F count=100 -F subset=&#039;lead-like&#039;&lt;br /&gt;
&lt;br /&gt;
== Sample output of a json formatted result with all available molecule data fields ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;catalogs&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;catalog_name&amp;quot;: &amp;quot;mH22P220&amp;quot;, &lt;br /&gt;
            &amp;quot;short_name&amp;quot;: &amp;quot;m&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ], &lt;br /&gt;
    &amp;quot;smiles&amp;quot;: &amp;quot;C=C(C)CN(C)[C@H](C)CNC(=O)c1nc(C)n2ccccc12&amp;quot;, &lt;br /&gt;
    &amp;quot;sub_id&amp;quot;: 41303101, &lt;br /&gt;
    &amp;quot;supplier_code&amp;quot;: [&lt;br /&gt;
        &amp;quot;M_275030__14114248__14126248__12659170&amp;quot;&lt;br /&gt;
    ], &lt;br /&gt;
    &amp;quot;tranche&amp;quot;: {&lt;br /&gt;
        &amp;quot;h_num&amp;quot;: &amp;quot;H22&amp;quot;, &lt;br /&gt;
        &amp;quot;logp&amp;quot;: &amp;quot;s&amp;quot;, &lt;br /&gt;
        &amp;quot;mwt&amp;quot;: &amp;quot;m&amp;quot;, &lt;br /&gt;
        &amp;quot;p_num&amp;quot;: &amp;quot;P220&amp;quot;, &lt;br /&gt;
        &amp;quot;tranche_id&amp;quot;: 1371&lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;zinc_id&amp;quot;: &amp;quot;ZINCms000002NiP3&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ZINC22]]&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Zinc22:Searching&amp;diff=15035</id>
		<title>Zinc22:Searching</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Zinc22:Searching&amp;diff=15035"/>
		<updated>2022-12-09T20:38:36Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Searching ZINC22:&lt;br /&gt;
&lt;br /&gt;
== Search by list of zinc ids ==&lt;br /&gt;
=== Through the Cartblanche22 website ===&lt;br /&gt;
  https://cartblanche22.docking.org/search/zincid&lt;br /&gt;
&lt;br /&gt;
=== curl command ===&lt;br /&gt;
&lt;br /&gt;
Below curl command returns a json file with all possible fields.&lt;br /&gt;
&lt;br /&gt;
 curl http://cartblanche22.docking.org/substances.json -F zinc_id-in=@/nfs/exd/zinc-22/H16/H16P220/H16P220-N.txt&lt;br /&gt;
 &lt;br /&gt;
The search can also be run without supplying a txt file&lt;br /&gt;
&lt;br /&gt;
 curl http://cartblanche22.docking.org/sublist -F zinc_id-in=”ZINCgs0000000OAi,ZINCgs0000000OAj&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Search by list of SMILES ==&lt;br /&gt;
=== Through the Cartblanche22 website ===&lt;br /&gt;
  https://cartblanche22.docking.org/search/smiles&lt;br /&gt;
&lt;br /&gt;
=== curl command ===&lt;br /&gt;
&lt;br /&gt;
Below curl command returns a json file with all possible fields. &lt;br /&gt;
&lt;br /&gt;
 curl http://cartblanche22.docking.org/smiles.json -F zinc_id-in=@/nfs/exd/zinc-22/H16/H16P220/H16P220-N.txt &lt;br /&gt;
&lt;br /&gt;
Distance and anonymous distance of the search will be defaulted to 0 unless specified. &lt;br /&gt;
 curl https://cartblanche22.docking.org/smiles.txt -F zinc_id-in=@/nfs/exd/zinc-22/H16/H16P220/H16P220-N.txt  -F dist=4 -F adist=4&lt;br /&gt;
 &lt;br /&gt;
== Search by list of supplier code ids ==&lt;br /&gt;
=== Through the Cartblanche22 website ===&lt;br /&gt;
  https://cartblanche22.docking.org/search/supplier&lt;br /&gt;
&lt;br /&gt;
=== curl command ===&lt;br /&gt;
&lt;br /&gt;
Below curl command returns a json file with all molecules available from that supplier, as well as all relevant molecule information. &lt;br /&gt;
&lt;br /&gt;
 curl https://cartblanche22.docking.org/catalogs.txt -F supplier_code-in=@sup.txt&lt;br /&gt;
&lt;br /&gt;
== Downloading a set of random molecules ==&lt;br /&gt;
=== Through the Cartblanche22 website ===&lt;br /&gt;
  https://cartblanche22.docking.org/search/random&lt;br /&gt;
=== curl command === &lt;br /&gt;
&lt;br /&gt;
The curl command returns a json file with the zinc_id and smiles of the specified number of random molecules. &lt;br /&gt;
&lt;br /&gt;
  curl https://cartblanche22.docking.org/substance/random.txt -F count=100 &lt;br /&gt;
&lt;br /&gt;
Subsets can be specified, but the search will pull from all available molecules unless otherwise specified.&lt;br /&gt;
&lt;br /&gt;
  curl https://cartblanche22.docking.org/substance/random.txt -F count=100 -F subset=&#039;lead-like&#039;&lt;br /&gt;
&lt;br /&gt;
== Sample output of a json formatted result with all available molecule data fields ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;catalogs&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;catalog_name&amp;quot;: &amp;quot;mH22P220&amp;quot;, &lt;br /&gt;
            &amp;quot;short_name&amp;quot;: &amp;quot;m&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ], &lt;br /&gt;
    &amp;quot;smiles&amp;quot;: &amp;quot;C=C(C)CN(C)[C@H](C)CNC(=O)c1nc(C)n2ccccc12&amp;quot;, &lt;br /&gt;
    &amp;quot;sub_id&amp;quot;: 41303101, &lt;br /&gt;
    &amp;quot;supplier_code&amp;quot;: [&lt;br /&gt;
        &amp;quot;M_275030__14114248__14126248__12659170&amp;quot;&lt;br /&gt;
    ], &lt;br /&gt;
    &amp;quot;tranche&amp;quot;: {&lt;br /&gt;
        &amp;quot;h_num&amp;quot;: &amp;quot;H22&amp;quot;, &lt;br /&gt;
        &amp;quot;logp&amp;quot;: &amp;quot;s&amp;quot;, &lt;br /&gt;
        &amp;quot;mwt&amp;quot;: &amp;quot;m&amp;quot;, &lt;br /&gt;
        &amp;quot;p_num&amp;quot;: &amp;quot;P220&amp;quot;, &lt;br /&gt;
        &amp;quot;tranche_id&amp;quot;: 1371&lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;zinc_id&amp;quot;: &amp;quot;ZINCms000002NiP3&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ZINC22]]&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Zinc22:Searching&amp;diff=15034</id>
		<title>Zinc22:Searching</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Zinc22:Searching&amp;diff=15034"/>
		<updated>2022-12-09T20:27:50Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Searching ZINC22: &lt;br /&gt;
&lt;br /&gt;
== Commmand line interface ==&lt;br /&gt;
&lt;br /&gt;
Below curl command returns a json file with all possible fields. Please see the return format from “Return Format for single zinc_id search” section.&lt;br /&gt;
&lt;br /&gt;
 curl http://cartblanche22.docking.org/search.json -F zinc_id=ZINCms000002NiP3&lt;br /&gt;
 &lt;br /&gt;
If you want to specify output fields, you can add output_fields. In this example it will return only smiles, sub_id. Please note that there are always smiles and zinc_id fields by default.  Also please do not forget to add -F before every field.&lt;br /&gt;
&lt;br /&gt;
 curl http://cartblanche22.docking.org/search.json -F zinc_id=ZINCms000002NiP3 -F output_fields=&#039;smiles,sub_id&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Return Format for single zinc_id search ==&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;catalogs&amp;quot;: [&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;catalog_name&amp;quot;: &amp;quot;mH22P220&amp;quot;, &lt;br /&gt;
            &amp;quot;short_name&amp;quot;: &amp;quot;m&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ], &lt;br /&gt;
    &amp;quot;smiles&amp;quot;: &amp;quot;C=C(C)CN(C)[C@H](C)CNC(=O)c1nc(C)n2ccccc12&amp;quot;, &lt;br /&gt;
    &amp;quot;sub_id&amp;quot;: 41303101, &lt;br /&gt;
    &amp;quot;supplier_code&amp;quot;: [&lt;br /&gt;
        &amp;quot;M_275030__14114248__14126248__12659170&amp;quot;&lt;br /&gt;
    ], &lt;br /&gt;
    &amp;quot;tranche&amp;quot;: {&lt;br /&gt;
        &amp;quot;h_num&amp;quot;: &amp;quot;H22&amp;quot;, &lt;br /&gt;
        &amp;quot;logp&amp;quot;: &amp;quot;s&amp;quot;, &lt;br /&gt;
        &amp;quot;mwt&amp;quot;: &amp;quot;m&amp;quot;, &lt;br /&gt;
        &amp;quot;p_num&amp;quot;: &amp;quot;P220&amp;quot;, &lt;br /&gt;
        &amp;quot;tranche_id&amp;quot;: 1371&lt;br /&gt;
    }, &lt;br /&gt;
    &amp;quot;zinc_id&amp;quot;: &amp;quot;ZINCms000002NiP3&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
== Search by list of zinc ids ==&lt;br /&gt;
&lt;br /&gt;
By curl command&lt;br /&gt;
&lt;br /&gt;
TEXT file&lt;br /&gt;
&lt;br /&gt;
Below curl command returns a json file with all possible fields. Please see the return format from “Return Format for list of zinc_id by text file search” section.&lt;br /&gt;
&lt;br /&gt;
 curl http://cartblanche22.docking.org/substances.json -F zinc_id-in=@/nfs/exd/zinc-22/H16/H16P220/H16P220-N.txt&lt;br /&gt;
 &lt;br /&gt;
Without txt file&lt;br /&gt;
&lt;br /&gt;
 curl http://cartblanche22.docking.org/sublist -F zinc_id-in=”ZINCgs0000000OAi,ZINCgs0000000OAj&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Downloading a set of random molecules ==&lt;br /&gt;
&lt;br /&gt;
The curl command returns a json file with the zinc_id and smiles of the specified number of random molecules. &lt;br /&gt;
&lt;br /&gt;
  curl https://cartblanche22.docking.org/substance/random.txt -F count=100 &lt;br /&gt;
&lt;br /&gt;
Subsets can be specified, but the search will pull from all available molecules unless otherwise specified.&lt;br /&gt;
&lt;br /&gt;
  curl https://cartblanche22.docking.org/substance/random.txt -F count=100 -F subset=&#039;lead-like&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ZINC22]]&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cartblanche22_Build_Instructions&amp;diff=14575</id>
		<title>Cartblanche22 Build Instructions</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cartblanche22_Build_Instructions&amp;diff=14575"/>
		<updated>2022-08-05T20:55:16Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: /* Local environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Local environment ==&lt;br /&gt;
&lt;br /&gt;
* Clone repo&lt;br /&gt;
  Git clone https://gitlab.docking.org/chinzo/molecule-shopping-cart&lt;br /&gt;
  Cd molecule-shopping-cart&lt;br /&gt;
* Create conda environment with python 3.7, install dependencies&lt;br /&gt;
  conda env create -f environment.yml&lt;br /&gt;
  conda activate cartblanche&lt;br /&gt;
&lt;br /&gt;
* Open ssh tunnel to machines, [https://sshuttle.readthedocs.io/en/stable/installation.html sshuttle] is a good tool to avoid having to open the tunnel to each tin/antimony machine individually.&lt;br /&gt;
  sudo sshuttle --auto-hosts --dns -v -vvvv -r jcastanon@gimel.ucsf.bkslab.org:22 -x gimel.ucsf.bkslab.org:22 0/0&lt;br /&gt;
&lt;br /&gt;
* Start application&lt;br /&gt;
  ./boot-test.sh&lt;br /&gt;
&lt;br /&gt;
== Deployment Information ==&lt;br /&gt;
Live site runs on n-9-22:5067. Pushing to master branch will deploy here. &lt;br /&gt;
Dev server runs on n-1-17:5068. Pushing to the dev branch will deploy to this server. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Useful Commands&#039;&#039;&#039; (Use these in the respective server to debug):&lt;br /&gt;
  docker restart molecule-shopping-cart (restart the docker container)&lt;br /&gt;
  docker logs molecule-shopping-cart (view app logs, only stdout)&lt;br /&gt;
  docker exec -it molecule-shopping-cart /bin/bash (open a shell inside of the docker container, useful for making quick minimal changes without having to redeploy)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To view error logs (stderr)&#039;&#039;&#039;&lt;br /&gt;
  docker exec -it molecule-shopping-cart /bin/bash&lt;br /&gt;
  cat std.log&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Some troubleshooting tips:&#039;&#039;&#039;&lt;br /&gt;
Cartblanche relies on other outside services (smallworld, arthur, databases)  so it’s good to check the status of those before looking into the code.&lt;br /&gt;
&lt;br /&gt;
For smallworld, check the status of api calls, or [https://sw.docking.org/search/view/?hlid=19842&amp;amp;draw=6&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=24&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1654029670029 run a sample query. ]&lt;br /&gt;
&lt;br /&gt;
For arthor, check the status of api class, or [https://arthor.docking.org//dt/ZINC-All-19Q4-1.4B/search?query=CC&amp;amp;type=Substructure&amp;amp;draw=2&amp;amp;start=0&amp;amp;length=80&amp;amp;flags=6144&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=alignment&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=false&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=sim&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=false&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false run a sample query].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For search errors (zincid, smiles, vendor), the docker app logs are usually very informative.&lt;br /&gt;
&lt;br /&gt;
== Deployment Process ==&lt;br /&gt;
Deployment is as simple as pushing changes to the respective branch. A docker image will be created with the new version of the code, which will then replace the current version. &lt;br /&gt;
To redeploy manually, go to https://gitlab.docking.org/chinzo/molecule-shopping-cart/-/pipelines/new&lt;br /&gt;
&lt;br /&gt;
== Setting up Auto-Deployment ==&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions on setting up a new gitlab runner, [https://gitlab.docking.org/admin/runners found here.]&lt;br /&gt;
&lt;br /&gt;
* Register the runner with the credentials provided in the link above.&lt;br /&gt;
&lt;br /&gt;
* Set ‘shell’ as the executor for the runner when prompted.&lt;br /&gt;
&lt;br /&gt;
* After configuration, the gitlab-runner config found in /etc/gitlab-runner/config.toml should look something like this: &lt;br /&gt;
&lt;br /&gt;
  oncurrent = 1&lt;br /&gt;
  check_interval = 0&lt;br /&gt;
  [session_server]&lt;br /&gt;
    session_timeout = 1800&lt;br /&gt;
  [[runners]]&lt;br /&gt;
    name = &amp;quot;cartblanche n-1-17&amp;quot;&lt;br /&gt;
    url = &amp;quot;http://gitlab.docking.org/&amp;quot;&lt;br /&gt;
    token = &amp;quot;Lvp2X3zRFAN_JQuVZK3y&amp;quot;&lt;br /&gt;
    privileged = true&lt;br /&gt;
    executor = &amp;quot;shell&amp;quot;&lt;br /&gt;
    builds_dir = &amp;quot;/home/cartblanche&amp;quot;&lt;br /&gt;
    [runners.custom_build_dir]&lt;br /&gt;
    [runners.docker]&lt;br /&gt;
      privileged = true&lt;br /&gt;
      disable_cache = false&lt;br /&gt;
      cache_dir = &amp;quot;cache&amp;quot;&lt;br /&gt;
     [runners.cache]&lt;br /&gt;
     [runners.cache.s3]&lt;br /&gt;
     [runners.cache.gcs]&lt;br /&gt;
     [runners.cache.azure]&lt;br /&gt;
&lt;br /&gt;
Return to https://gitlab.docking.org/admin/runners, where the new runner will be displayed. Edit the runner’s tags to describe what the runner will be deploying. For example, the test server has the tag ‘cartblanche-dev’ and the production server has ‘cartblanche22’. &lt;br /&gt;
Once the tag is set, a new job will need to be added to the gitlab deployment script to deploy the correct branch to the correct machine. https://gitlab.docking.org/chinzo/molecule-shopping-cart/-/blob/master/.gitlab-ci.yml &lt;br /&gt;
&lt;br /&gt;
A sample job will look like so:&lt;br /&gt;
&lt;br /&gt;
  services:&lt;br /&gt;
    - redis:latest&lt;br /&gt;
  &#039;&#039;&#039;deploy-dev&#039;&#039;&#039; job:&lt;br /&gt;
      &#039;&#039;&#039;only:&lt;br /&gt;
          - dev&#039;&#039;&#039;&lt;br /&gt;
      stage: deploy&lt;br /&gt;
      services:&lt;br /&gt;
          - redis:latest&lt;br /&gt;
      &#039;&#039;&#039;tags:&lt;br /&gt;
          - cartblanche-dev&#039;&#039;&#039;&lt;br /&gt;
      script:&lt;br /&gt;
          - docker build -t &amp;quot;${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-0.1.${CI_JOB_ID}&amp;quot; .&lt;br /&gt;
          - docker stop ${CI_PROJECT_NAME}&lt;br /&gt;
          - docker rm ${CI_PROJECT_NAME}&lt;br /&gt;
          - docker stop redis&lt;br /&gt;
          - docker rm redis&lt;br /&gt;
          - docker run --net cartblanche --name redis -d redis&lt;br /&gt;
          - docker run --net cartblanche -v /nfs/db2/smallworld_anon_21Q4:/nfs/db3/private_smallworld_4th_gen/anon&lt;br /&gt;
                     -v /export/db4/smallworld-java:/export/db4/smallworld-java&lt;br /&gt;
                     -v /nfs/db3/private_smallworld_4th_gen/smallworld.cfg:/nfs/db3/private_smallworld_4th_gen/smallworld.cfg&lt;br /&gt;
                     -v /nfs/db3/private_smallworld_4th_gen/maps:/nfs/db3/private_smallworld_4th_gen/maps&lt;br /&gt;
                     --name ${CI_PROJECT_NAME} -d -p &#039;&#039;&#039;0.0.0.0:5068&#039;&#039;&#039;:5000 ${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-0.1.${CI_JOB_ID}&lt;br /&gt;
&lt;br /&gt;
* The name ‘deploy-dev’ refers to the job name. &lt;br /&gt;
&lt;br /&gt;
* &#039;only: -dev&#039; refers to the script only deploying the dev branch. More branches can be added to deploy pushes to different branches to the same machine. &lt;br /&gt;
&lt;br /&gt;
* &#039;tags: -cartblanche-dev&#039; refers to the job tags, which determines which machine will take care of that deployment job. This can be changed to the tag that was set up earlier. You can also add multiple tags to deploy the same branch (or branches) to multiple machines at the same time.&lt;br /&gt;
&lt;br /&gt;
* 0.0.0.0:5068 refers to the port that points to the application.&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cartblanche22_Build_Instructions&amp;diff=14574</id>
		<title>Cartblanche22 Build Instructions</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cartblanche22_Build_Instructions&amp;diff=14574"/>
		<updated>2022-08-05T20:54:53Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: /* Local environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Local environment ==&lt;br /&gt;
&lt;br /&gt;
* Clone repo&lt;br /&gt;
  Git clone https://gitlab.docking.org/chinzo/molecule-shopping-cart&lt;br /&gt;
  Cd molecule-shopping-cart&lt;br /&gt;
* Create conda environment with python 3.7, install dependencies&lt;br /&gt;
  conda env create -f environment.yml&lt;br /&gt;
  conda activate cartblanche&lt;br /&gt;
&lt;br /&gt;
* Open ssh tunnel to machines, [https://sshuttle.readthedocs.io/en/stable/installation.html sshuttle] is a good tool to avoid having to open the tunnel to each tin machine individually. This does not work for vendor lookup at the moment since antimony machines have the alias stored and not the actual IP&lt;br /&gt;
  sudo sshuttle --auto-hosts --dns -v -vvvv -r jcastanon@gimel.ucsf.bkslab.org:22 -x gimel.ucsf.bkslab.org:22 0/0&lt;br /&gt;
&lt;br /&gt;
* Start application&lt;br /&gt;
  ./boot-test.sh&lt;br /&gt;
&lt;br /&gt;
== Deployment Information ==&lt;br /&gt;
Live site runs on n-9-22:5067. Pushing to master branch will deploy here. &lt;br /&gt;
Dev server runs on n-1-17:5068. Pushing to the dev branch will deploy to this server. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Useful Commands&#039;&#039;&#039; (Use these in the respective server to debug):&lt;br /&gt;
  docker restart molecule-shopping-cart (restart the docker container)&lt;br /&gt;
  docker logs molecule-shopping-cart (view app logs, only stdout)&lt;br /&gt;
  docker exec -it molecule-shopping-cart /bin/bash (open a shell inside of the docker container, useful for making quick minimal changes without having to redeploy)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To view error logs (stderr)&#039;&#039;&#039;&lt;br /&gt;
  docker exec -it molecule-shopping-cart /bin/bash&lt;br /&gt;
  cat std.log&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Some troubleshooting tips:&#039;&#039;&#039;&lt;br /&gt;
Cartblanche relies on other outside services (smallworld, arthur, databases)  so it’s good to check the status of those before looking into the code.&lt;br /&gt;
&lt;br /&gt;
For smallworld, check the status of api calls, or [https://sw.docking.org/search/view/?hlid=19842&amp;amp;draw=6&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=24&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1654029670029 run a sample query. ]&lt;br /&gt;
&lt;br /&gt;
For arthor, check the status of api class, or [https://arthor.docking.org//dt/ZINC-All-19Q4-1.4B/search?query=CC&amp;amp;type=Substructure&amp;amp;draw=2&amp;amp;start=0&amp;amp;length=80&amp;amp;flags=6144&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=alignment&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=false&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=sim&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=false&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false run a sample query].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For search errors (zincid, smiles, vendor), the docker app logs are usually very informative.&lt;br /&gt;
&lt;br /&gt;
== Deployment Process ==&lt;br /&gt;
Deployment is as simple as pushing changes to the respective branch. A docker image will be created with the new version of the code, which will then replace the current version. &lt;br /&gt;
To redeploy manually, go to https://gitlab.docking.org/chinzo/molecule-shopping-cart/-/pipelines/new&lt;br /&gt;
&lt;br /&gt;
== Setting up Auto-Deployment ==&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions on setting up a new gitlab runner, [https://gitlab.docking.org/admin/runners found here.]&lt;br /&gt;
&lt;br /&gt;
* Register the runner with the credentials provided in the link above.&lt;br /&gt;
&lt;br /&gt;
* Set ‘shell’ as the executor for the runner when prompted.&lt;br /&gt;
&lt;br /&gt;
* After configuration, the gitlab-runner config found in /etc/gitlab-runner/config.toml should look something like this: &lt;br /&gt;
&lt;br /&gt;
  oncurrent = 1&lt;br /&gt;
  check_interval = 0&lt;br /&gt;
  [session_server]&lt;br /&gt;
    session_timeout = 1800&lt;br /&gt;
  [[runners]]&lt;br /&gt;
    name = &amp;quot;cartblanche n-1-17&amp;quot;&lt;br /&gt;
    url = &amp;quot;http://gitlab.docking.org/&amp;quot;&lt;br /&gt;
    token = &amp;quot;Lvp2X3zRFAN_JQuVZK3y&amp;quot;&lt;br /&gt;
    privileged = true&lt;br /&gt;
    executor = &amp;quot;shell&amp;quot;&lt;br /&gt;
    builds_dir = &amp;quot;/home/cartblanche&amp;quot;&lt;br /&gt;
    [runners.custom_build_dir]&lt;br /&gt;
    [runners.docker]&lt;br /&gt;
      privileged = true&lt;br /&gt;
      disable_cache = false&lt;br /&gt;
      cache_dir = &amp;quot;cache&amp;quot;&lt;br /&gt;
     [runners.cache]&lt;br /&gt;
     [runners.cache.s3]&lt;br /&gt;
     [runners.cache.gcs]&lt;br /&gt;
     [runners.cache.azure]&lt;br /&gt;
&lt;br /&gt;
Return to https://gitlab.docking.org/admin/runners, where the new runner will be displayed. Edit the runner’s tags to describe what the runner will be deploying. For example, the test server has the tag ‘cartblanche-dev’ and the production server has ‘cartblanche22’. &lt;br /&gt;
Once the tag is set, a new job will need to be added to the gitlab deployment script to deploy the correct branch to the correct machine. https://gitlab.docking.org/chinzo/molecule-shopping-cart/-/blob/master/.gitlab-ci.yml &lt;br /&gt;
&lt;br /&gt;
A sample job will look like so:&lt;br /&gt;
&lt;br /&gt;
  services:&lt;br /&gt;
    - redis:latest&lt;br /&gt;
  &#039;&#039;&#039;deploy-dev&#039;&#039;&#039; job:&lt;br /&gt;
      &#039;&#039;&#039;only:&lt;br /&gt;
          - dev&#039;&#039;&#039;&lt;br /&gt;
      stage: deploy&lt;br /&gt;
      services:&lt;br /&gt;
          - redis:latest&lt;br /&gt;
      &#039;&#039;&#039;tags:&lt;br /&gt;
          - cartblanche-dev&#039;&#039;&#039;&lt;br /&gt;
      script:&lt;br /&gt;
          - docker build -t &amp;quot;${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-0.1.${CI_JOB_ID}&amp;quot; .&lt;br /&gt;
          - docker stop ${CI_PROJECT_NAME}&lt;br /&gt;
          - docker rm ${CI_PROJECT_NAME}&lt;br /&gt;
          - docker stop redis&lt;br /&gt;
          - docker rm redis&lt;br /&gt;
          - docker run --net cartblanche --name redis -d redis&lt;br /&gt;
          - docker run --net cartblanche -v /nfs/db2/smallworld_anon_21Q4:/nfs/db3/private_smallworld_4th_gen/anon&lt;br /&gt;
                     -v /export/db4/smallworld-java:/export/db4/smallworld-java&lt;br /&gt;
                     -v /nfs/db3/private_smallworld_4th_gen/smallworld.cfg:/nfs/db3/private_smallworld_4th_gen/smallworld.cfg&lt;br /&gt;
                     -v /nfs/db3/private_smallworld_4th_gen/maps:/nfs/db3/private_smallworld_4th_gen/maps&lt;br /&gt;
                     --name ${CI_PROJECT_NAME} -d -p &#039;&#039;&#039;0.0.0.0:5068&#039;&#039;&#039;:5000 ${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-0.1.${CI_JOB_ID}&lt;br /&gt;
&lt;br /&gt;
* The name ‘deploy-dev’ refers to the job name. &lt;br /&gt;
&lt;br /&gt;
* &#039;only: -dev&#039; refers to the script only deploying the dev branch. More branches can be added to deploy pushes to different branches to the same machine. &lt;br /&gt;
&lt;br /&gt;
* &#039;tags: -cartblanche-dev&#039; refers to the job tags, which determines which machine will take care of that deployment job. This can be changed to the tag that was set up earlier. You can also add multiple tags to deploy the same branch (or branches) to multiple machines at the same time.&lt;br /&gt;
&lt;br /&gt;
* 0.0.0.0:5068 refers to the port that points to the application.&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
	<entry>
		<id>http://wiki.docking.org/index.php?title=Cartblanche22_Build_Instructions&amp;diff=14573</id>
		<title>Cartblanche22 Build Instructions</title>
		<link rel="alternate" type="text/html" href="http://wiki.docking.org/index.php?title=Cartblanche22_Build_Instructions&amp;diff=14573"/>
		<updated>2022-08-05T20:31:42Z</updated>

		<summary type="html">&lt;p&gt;Jocastanon: /* Deployment Information */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Local environment ==&lt;br /&gt;
&lt;br /&gt;
* Clone repo&lt;br /&gt;
  Git clone https://gitlab.docking.org/chinzo/molecule-shopping-cart&lt;br /&gt;
  Cd molecule-shopping-cart&lt;br /&gt;
* Create conda environment with python 3.7, install dependencies&lt;br /&gt;
  conda env create -f environment.yml&lt;br /&gt;
  conda activate cartblanche&lt;br /&gt;
&lt;br /&gt;
* Open ssh tunnel to machines, [https://sshuttle.readthedocs.io/en/stable/installation.html sshuttle] is a good tool to avoid having to open the tunnel to each tin machine individually. This does not work for vendor lookup at the moment since antimony machines have the alias stored and not the actual IP&lt;br /&gt;
  sudo sshuttle --dns -v -vvvv -r username@gimel.ucsf.bkslab.org:22 -x gimel.ucsf.bkslab.org:22 0/0&lt;br /&gt;
&lt;br /&gt;
* Start application&lt;br /&gt;
  ./boot-test.sh&lt;br /&gt;
&lt;br /&gt;
== Deployment Information ==&lt;br /&gt;
Live site runs on n-9-22:5067. Pushing to master branch will deploy here. &lt;br /&gt;
Dev server runs on n-1-17:5068. Pushing to the dev branch will deploy to this server. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Useful Commands&#039;&#039;&#039; (Use these in the respective server to debug):&lt;br /&gt;
  docker restart molecule-shopping-cart (restart the docker container)&lt;br /&gt;
  docker logs molecule-shopping-cart (view app logs, only stdout)&lt;br /&gt;
  docker exec -it molecule-shopping-cart /bin/bash (open a shell inside of the docker container, useful for making quick minimal changes without having to redeploy)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To view error logs (stderr)&#039;&#039;&#039;&lt;br /&gt;
  docker exec -it molecule-shopping-cart /bin/bash&lt;br /&gt;
  cat std.log&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Some troubleshooting tips:&#039;&#039;&#039;&lt;br /&gt;
Cartblanche relies on other outside services (smallworld, arthur, databases)  so it’s good to check the status of those before looking into the code.&lt;br /&gt;
&lt;br /&gt;
For smallworld, check the status of api calls, or [https://sw.docking.org/search/view/?hlid=19842&amp;amp;draw=6&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=alignment&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=dist&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=true&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=0-10&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=ecfp4&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=true&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B3%5D%5Bdata%5D=3&amp;amp;columns%5B3%5D%5Bname%5D=daylight&amp;amp;columns%5B3%5D%5Bsearchable%5D=true&amp;amp;columns%5B3%5D%5Borderable%5D=true&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B4%5D%5Bdata%5D=4&amp;amp;columns%5B4%5D%5Bname%5D=topodist&amp;amp;columns%5B4%5D%5Bsearchable%5D=true&amp;amp;columns%5B4%5D%5Borderable%5D=true&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B5%5D%5Bdata%5D=5&amp;amp;columns%5B5%5D%5Bname%5D=mces&amp;amp;columns%5B5%5D%5Bsearchable%5D=true&amp;amp;columns%5B5%5D%5Borderable%5D=true&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B6%5D%5Bdata%5D=6&amp;amp;columns%5B6%5D%5Bname%5D=tdn&amp;amp;columns%5B6%5D%5Bsearchable%5D=true&amp;amp;columns%5B6%5D%5Borderable%5D=true&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B7%5D%5Bdata%5D=7&amp;amp;columns%5B7%5D%5Bname%5D=tup&amp;amp;columns%5B7%5D%5Bsearchable%5D=true&amp;amp;columns%5B7%5D%5Borderable%5D=true&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B8%5D%5Bdata%5D=8&amp;amp;columns%5B8%5D%5Bname%5D=rdn&amp;amp;columns%5B8%5D%5Bsearchable%5D=true&amp;amp;columns%5B8%5D%5Borderable%5D=true&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B9%5D%5Bdata%5D=9&amp;amp;columns%5B9%5D%5Bname%5D=rup&amp;amp;columns%5B9%5D%5Bsearchable%5D=true&amp;amp;columns%5B9%5D%5Borderable%5D=true&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B10%5D%5Bdata%5D=10&amp;amp;columns%5B10%5D%5Bname%5D=ldn&amp;amp;columns%5B10%5D%5Bsearchable%5D=true&amp;amp;columns%5B10%5D%5Borderable%5D=true&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B11%5D%5Bdata%5D=11&amp;amp;columns%5B11%5D%5Bname%5D=lup&amp;amp;columns%5B11%5D%5Bsearchable%5D=true&amp;amp;columns%5B11%5D%5Borderable%5D=true&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B12%5D%5Bdata%5D=12&amp;amp;columns%5B12%5D%5Bname%5D=mut&amp;amp;columns%5B12%5D%5Bsearchable%5D=true&amp;amp;columns%5B12%5D%5Borderable%5D=true&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B13%5D%5Bdata%5D=13&amp;amp;columns%5B13%5D%5Bname%5D=maj&amp;amp;columns%5B13%5D%5Bsearchable%5D=true&amp;amp;columns%5B13%5D%5Borderable%5D=true&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B14%5D%5Bdata%5D=14&amp;amp;columns%5B14%5D%5Bname%5D=min&amp;amp;columns%5B14%5D%5Bsearchable%5D=true&amp;amp;columns%5B14%5D%5Borderable%5D=true&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B14%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B15%5D%5Bdata%5D=15&amp;amp;columns%5B15%5D%5Bname%5D=hyb&amp;amp;columns%5B15%5D%5Bsearchable%5D=true&amp;amp;columns%5B15%5D%5Borderable%5D=true&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B15%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B16%5D%5Bdata%5D=16&amp;amp;columns%5B16%5D%5Bname%5D=sub&amp;amp;columns%5B16%5D%5Bsearchable%5D=true&amp;amp;columns%5B16%5D%5Borderable%5D=true&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bvalue%5D=0-4&amp;amp;columns%5B16%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;order%5B0%5D%5Bcolumn%5D=0&amp;amp;order%5B0%5D%5Bdir%5D=asc&amp;amp;start=0&amp;amp;length=24&amp;amp;search%5Bvalue%5D=&amp;amp;search%5Bregex%5D=false&amp;amp;_=1654029670029 run a sample query. ]&lt;br /&gt;
&lt;br /&gt;
For arthor, check the status of api class, or [https://arthor.docking.org//dt/ZINC-All-19Q4-1.4B/search?query=CC&amp;amp;type=Substructure&amp;amp;draw=2&amp;amp;start=0&amp;amp;length=80&amp;amp;flags=6144&amp;amp;columns%5B0%5D%5Bdata%5D=0&amp;amp;columns%5B0%5D%5Bname%5D=&amp;amp;columns%5B0%5D%5Bsearchable%5D=true&amp;amp;columns%5B0%5D%5Borderable%5D=false&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B1%5D%5Bdata%5D=1&amp;amp;columns%5B1%5D%5Bname%5D=alignment&amp;amp;columns%5B1%5D%5Bsearchable%5D=true&amp;amp;columns%5B1%5D%5Borderable%5D=false&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&amp;amp;columns%5B2%5D%5Bdata%5D=2&amp;amp;columns%5B2%5D%5Bname%5D=sim&amp;amp;columns%5B2%5D%5Bsearchable%5D=true&amp;amp;columns%5B2%5D%5Borderable%5D=false&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&amp;amp;columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false run a sample query].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For search errors (zincid, smiles, vendor), the docker app logs are usually very informative.&lt;br /&gt;
&lt;br /&gt;
== Deployment Process ==&lt;br /&gt;
Deployment is as simple as pushing changes to the respective branch. A docker image will be created with the new version of the code, which will then replace the current version. &lt;br /&gt;
To redeploy manually, go to https://gitlab.docking.org/chinzo/molecule-shopping-cart/-/pipelines/new&lt;br /&gt;
&lt;br /&gt;
== Setting up Auto-Deployment ==&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions on setting up a new gitlab runner, [https://gitlab.docking.org/admin/runners found here.]&lt;br /&gt;
&lt;br /&gt;
* Register the runner with the credentials provided in the link above.&lt;br /&gt;
&lt;br /&gt;
* Set ‘shell’ as the executor for the runner when prompted.&lt;br /&gt;
&lt;br /&gt;
* After configuration, the gitlab-runner config found in /etc/gitlab-runner/config.toml should look something like this: &lt;br /&gt;
&lt;br /&gt;
  oncurrent = 1&lt;br /&gt;
  check_interval = 0&lt;br /&gt;
  [session_server]&lt;br /&gt;
    session_timeout = 1800&lt;br /&gt;
  [[runners]]&lt;br /&gt;
    name = &amp;quot;cartblanche n-1-17&amp;quot;&lt;br /&gt;
    url = &amp;quot;http://gitlab.docking.org/&amp;quot;&lt;br /&gt;
    token = &amp;quot;Lvp2X3zRFAN_JQuVZK3y&amp;quot;&lt;br /&gt;
    privileged = true&lt;br /&gt;
    executor = &amp;quot;shell&amp;quot;&lt;br /&gt;
    builds_dir = &amp;quot;/home/cartblanche&amp;quot;&lt;br /&gt;
    [runners.custom_build_dir]&lt;br /&gt;
    [runners.docker]&lt;br /&gt;
      privileged = true&lt;br /&gt;
      disable_cache = false&lt;br /&gt;
      cache_dir = &amp;quot;cache&amp;quot;&lt;br /&gt;
     [runners.cache]&lt;br /&gt;
     [runners.cache.s3]&lt;br /&gt;
     [runners.cache.gcs]&lt;br /&gt;
     [runners.cache.azure]&lt;br /&gt;
&lt;br /&gt;
Return to https://gitlab.docking.org/admin/runners, where the new runner will be displayed. Edit the runner’s tags to describe what the runner will be deploying. For example, the test server has the tag ‘cartblanche-dev’ and the production server has ‘cartblanche22’. &lt;br /&gt;
Once the tag is set, a new job will need to be added to the gitlab deployment script to deploy the correct branch to the correct machine. https://gitlab.docking.org/chinzo/molecule-shopping-cart/-/blob/master/.gitlab-ci.yml &lt;br /&gt;
&lt;br /&gt;
A sample job will look like so:&lt;br /&gt;
&lt;br /&gt;
  services:&lt;br /&gt;
    - redis:latest&lt;br /&gt;
  &#039;&#039;&#039;deploy-dev&#039;&#039;&#039; job:&lt;br /&gt;
      &#039;&#039;&#039;only:&lt;br /&gt;
          - dev&#039;&#039;&#039;&lt;br /&gt;
      stage: deploy&lt;br /&gt;
      services:&lt;br /&gt;
          - redis:latest&lt;br /&gt;
      &#039;&#039;&#039;tags:&lt;br /&gt;
          - cartblanche-dev&#039;&#039;&#039;&lt;br /&gt;
      script:&lt;br /&gt;
          - docker build -t &amp;quot;${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-0.1.${CI_JOB_ID}&amp;quot; .&lt;br /&gt;
          - docker stop ${CI_PROJECT_NAME}&lt;br /&gt;
          - docker rm ${CI_PROJECT_NAME}&lt;br /&gt;
          - docker stop redis&lt;br /&gt;
          - docker rm redis&lt;br /&gt;
          - docker run --net cartblanche --name redis -d redis&lt;br /&gt;
          - docker run --net cartblanche -v /nfs/db2/smallworld_anon_21Q4:/nfs/db3/private_smallworld_4th_gen/anon&lt;br /&gt;
                     -v /export/db4/smallworld-java:/export/db4/smallworld-java&lt;br /&gt;
                     -v /nfs/db3/private_smallworld_4th_gen/smallworld.cfg:/nfs/db3/private_smallworld_4th_gen/smallworld.cfg&lt;br /&gt;
                     -v /nfs/db3/private_smallworld_4th_gen/maps:/nfs/db3/private_smallworld_4th_gen/maps&lt;br /&gt;
                     --name ${CI_PROJECT_NAME} -d -p &#039;&#039;&#039;0.0.0.0:5068&#039;&#039;&#039;:5000 ${CI_PROJECT_NAME}:${CI_COMMIT_REF_NAME}-0.1.${CI_JOB_ID}&lt;br /&gt;
&lt;br /&gt;
* The name ‘deploy-dev’ refers to the job name. &lt;br /&gt;
&lt;br /&gt;
* &#039;only: -dev&#039; refers to the script only deploying the dev branch. More branches can be added to deploy pushes to different branches to the same machine. &lt;br /&gt;
&lt;br /&gt;
* &#039;tags: -cartblanche-dev&#039; refers to the job tags, which determines which machine will take care of that deployment job. This can be changed to the tag that was set up earlier. You can also add multiple tags to deploy the same branch (or branches) to multiple machines at the same time.&lt;br /&gt;
&lt;br /&gt;
* 0.0.0.0:5068 refers to the port that points to the application.&lt;/div&gt;</summary>
		<author><name>Jocastanon</name></author>
	</entry>
</feed>