Fossil Add-Ons

Hex Artifact Content
Login

Hex Artifact Content

Artifact 7e3109a11405e6528b3c13ee1887a7848aea905e446d568b84a3c73fbc5405b3:


0000: 23 21 2f 62 69 6e 2f 62 61 73 68 0a 49 4d 41 47  #!/bin/bash.IMAG
0010: 45 3d 64 6f 63 6b 65 72 2e 69 6f 2f 74 61 6e 67  E=docker.io/tang
0020: 65 6e 74 73 6f 66 74 2f 66 6f 73 73 69 6c 0a 53  entsoft/fossil.S
0030: 49 54 45 3d 68 74 74 70 73 3a 2f 2f 65 78 61 6d  ITE=https://exam
0040: 70 6c 65 2e 63 6f 6d 0a 50 4f 52 54 3d 31 32 33  ple.com.PORT=123
0050: 34 35 0a 0a 66 75 6e 63 74 69 6f 6e 20 73 74 61  45..function sta
0060: 72 74 5f 6f 6e 65 28 29 20 7b 0a 20 20 20 20 62  rt_one() {.    b
0070: 6e 3d 24 31 0a 20 20 20 20 6c 6e 3d 22 24 32 22  n=$1.    ln="$2"
0080: 0a 20 20 20 20 6e 61 6d 65 3d 66 6f 73 73 69 6c  .    name=fossil
0090: 2d 24 62 6e 0a 0a 20 20 20 20 73 75 64 6f 20 73  -$bn..    sudo s
00a0: 79 73 74 65 6d 63 74 6c 20 73 74 6f 70 20 24 6e  ystemctl stop $n
00b0: 61 6d 65 20 20 20 20 20 20 3e 20 2f 64 65 76 2f  ame      > /dev/
00c0: 6e 75 6c 6c 20 32 3e 26 31 0a 20 20 20 20 73 75  null 2>&1.    su
00d0: 64 6f 20 70 6f 64 6d 61 6e 20 63 6f 6e 74 61 69  do podman contai
00e0: 6e 65 72 20 72 6d 20 24 6e 61 6d 65 20 3e 20 2f  ner rm $name > /
00f0: 64 65 76 2f 6e 75 6c 6c 20 32 3e 26 31 0a 20 20  dev/null 2>&1.  
0100: 20 20 69 64 3d 24 28 73 75 64 6f 20 70 6f 64 6d    id=$(sudo podm
0110: 61 6e 20 63 72 65 61 74 65 20 5c 0a 20 20 20 20  an create \.    
0120: 20 20 20 20 2d 2d 6e 61 6d 65 20 24 6e 61 6d 65      --name $name
0130: 20 5c 0a 20 20 20 20 20 20 20 20 2d 2d 63 61 70   \.        --cap
0140: 2d 64 72 6f 70 20 41 55 44 49 54 5f 57 52 49 54  -drop AUDIT_WRIT
0150: 45 20 5c 0a 20 20 20 20 20 20 20 20 2d 2d 63 61  E \.        --ca
0160: 70 2d 64 72 6f 70 20 43 48 4f 57 4e 20 5c 0a 20  p-drop CHOWN \. 
0170: 20 20 20 20 20 20 20 2d 2d 63 61 70 2d 64 72 6f         --cap-dro
0180: 70 20 46 53 45 54 49 44 20 5c 0a 20 20 20 20 20  p FSETID \.     
0190: 20 20 20 2d 2d 63 61 70 2d 64 72 6f 70 20 4b 49     --cap-drop KI
01a0: 4c 4c 20 5c 0a 20 20 20 20 20 20 20 20 2d 2d 63  LL \.        --c
01b0: 61 70 2d 64 72 6f 70 20 4e 45 54 5f 42 49 4e 44  ap-drop NET_BIND
01c0: 5f 53 45 52 56 49 43 45 20 5c 0a 20 20 20 20 20  _SERVICE \.     
01d0: 20 20 20 2d 2d 63 61 70 2d 64 72 6f 70 20 4e 45     --cap-drop NE
01e0: 54 5f 52 41 57 20 5c 0a 20 20 20 20 20 20 20 20  T_RAW \.        
01f0: 2d 2d 63 61 70 2d 64 72 6f 70 20 53 45 54 46 43  --cap-drop SETFC
0200: 41 50 20 5c 0a 20 20 20 20 20 20 20 20 2d 2d 63  AP \.        --c
0210: 61 70 2d 64 72 6f 70 20 53 45 54 50 43 41 50 20  ap-drop SETPCAP 
0220: 5c 0a 20 20 20 20 20 20 20 20 2d 2d 6c 61 62 65  \.        --labe
0230: 6c 20 22 69 6f 2e 63 6f 6e 74 61 69 6e 65 72 73  l "io.containers
0240: 2e 61 75 74 6f 75 70 64 61 74 65 3d 69 6d 61 67  .autoupdate=imag
0250: 65 22 20 5c 0a 20 20 20 20 20 20 20 20 2d 2d 70  e" \.        --p
0260: 75 62 6c 69 73 68 20 31 32 37 2e 30 2e 30 2e 31  ublish 127.0.0.1
0270: 3a 24 50 4f 52 54 3a 38 30 38 30 20 5c 0a 20 20  :$PORT:8080 \.  
0280: 20 20 20 20 20 20 2d 2d 76 6f 6c 75 6d 65 20 7e        --volume ~
0290: 2f 6d 75 73 65 75 6d 2f 24 62 6e 3a 2f 6a 61 69  /museum/$bn:/jai
02a0: 6c 2f 6d 75 73 65 75 6d 20 5c 0a 20 20 20 20 20  l/museum \.     
02b0: 20 20 20 2d 2d 76 6f 6c 75 6d 65 20 7e 2f 6c 6f     --volume ~/lo
02c0: 67 2f 66 6f 73 73 69 6c 3a 2f 6a 61 69 6c 2f 6c  g/fossil:/jail/l
02d0: 6f 67 20 5c 0a 20 20 20 20 20 20 20 20 24 49 4d  og \.        $IM
02e0: 41 47 45 20 5c 0a 20 20 20 20 20 20 20 20 62 69  AGE \.        bi
02f0: 6e 2f 66 6f 73 73 69 6c 20 73 65 72 76 65 72 20  n/fossil server 
0300: 5c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d 2d  \.            --
0310: 73 63 67 69 20 5c 0a 20 20 20 20 20 20 20 20 20  scgi \.         
0320: 20 20 20 2d 2d 63 68 72 6f 6f 74 20 2f 6a 61 69     --chroot /jai
0330: 6c 20 5c 0a 20 20 20 20 20 20 20 20 20 20 20 20  l \.            
0340: 2d 2d 6a 73 6d 6f 64 65 20 62 75 6e 64 6c 65 64  --jsmode bundled
0350: 20 5c 0a 20 20 20 20 20 20 20 20 20 20 20 20 2d   \.            -
0360: 2d 62 61 73 65 75 72 6c 20 24 53 49 54 45 2f 24  -baseurl $SITE/$
0370: 62 6e 20 5c 0a 20 20 20 20 20 20 20 20 20 20 20  bn \.           
0380: 20 2d 2d 65 72 72 6f 72 6c 6f 67 20 2f 6c 6f 67   --errorlog /log
0390: 2f 24 62 6e 2e 6c 6f 67 20 5c 0a 20 20 20 20 20  /$bn.log \.     
03a0: 20 20 20 20 20 20 20 6d 75 73 65 75 6d 2f 72 65         museum/re
03b0: 70 6f 2e 66 6f 73 73 69 6c 29 0a 20 20 20 20 73  po.fossil).    s
03c0: 75 64 6f 20 70 6f 64 6d 61 6e 20 67 65 6e 65 72  udo podman gener
03d0: 61 74 65 20 73 79 73 74 65 6d 64 20 2d 2d 6e 65  ate systemd --ne
03e0: 77 20 2d 2d 6e 61 6d 65 20 24 6e 61 6d 65 20 7c  w --name $name |
03f0: 0a 20 20 20 20 20 20 20 20 73 75 64 6f 20 64 64  .        sudo dd
0400: 20 73 74 61 74 75 73 3d 6e 6f 6e 65 20 6f 66 3d   status=none of=
0410: 2f 65 74 63 2f 73 79 73 74 65 6d 64 2f 73 79 73  /etc/systemd/sys
0420: 74 65 6d 2f 24 6e 61 6d 65 2e 73 65 72 76 69 63  tem/$name.servic
0430: 65 0a 0a 20 20 20 20 69 66 20 5b 20 2d 7a 20 22  e..    if [ -z "
0440: 24 46 49 52 53 54 22 20 5d 0a 20 20 20 20 74 68  $FIRST" ].    th
0450: 65 6e 0a 20 20 20 20 20 20 20 20 6f 76 3d 24 28  en.        ov=$(
0460: 66 6f 73 73 69 6c 20 76 65 72 73 69 6f 6e 29 0a  fossil version).
0470: 20 20 20 20 20 20 20 20 73 75 64 6f 20 70 6f 64          sudo pod
0480: 6d 61 6e 20 63 70 20 24 6e 61 6d 65 3a 2f 6a 61  man cp $name:/ja
0490: 69 6c 2f 62 69 6e 2f 66 6f 73 73 69 6c 20 24 28  il/bin/fossil $(
04a0: 74 79 70 65 20 2d 70 20 66 6f 73 73 69 6c 29 0a  type -p fossil).
04b0: 20 20 20 20 20 20 20 20 6e 76 3d 24 28 66 6f 73          nv=$(fos
04c0: 73 69 6c 20 76 65 72 73 69 6f 6e 29 0a 20 20 20  sil version).   
04d0: 20 20 20 20 20 65 63 68 6f 20 2d 65 20 22 55 70       echo -e "Up
04e0: 64 61 74 65 64 20 46 6f 73 73 69 6c 3a 5c 6e 20  dated Fossil:\n 
04f0: 20 46 72 6f 6d 3a 20 24 6f 76 5c 6e 20 20 20 20   From: $ov\n    
0500: 54 6f 3a 20 24 6e 76 22 0a 20 20 20 20 20 20 20  To: $nv".       
0510: 20 46 49 52 53 54 3d 30 0a 20 20 20 20 66 69 0a   FIRST=0.    fi.
0520: 0a 20 20 20 20 65 63 68 6f 20 43 72 65 61 74 65  .    echo Create
0530: 64 20 24 6c 6e 20 46 6f 73 73 69 6c 20 63 6f 6e  d $ln Fossil con
0540: 74 61 69 6e 65 72 2c 20 70 6f 72 74 20 24 50 4f  tainer, port $PO
0550: 52 54 2c 20 49 44 20 24 7b 69 64 3a 30 3a 38 7d  RT, ID ${id:0:8}
0560: 2e 0a 0a 20 20 20 20 4e 41 4d 45 53 3d 22 24 4e  ...    NAMES="$N
0570: 41 4d 45 53 20 24 6e 61 6d 65 22 0a 20 20 20 20  AMES $name".    
0580: 50 4f 52 54 3d 24 28 28 24 50 4f 52 54 20 2b 20  PORT=$(($PORT + 
0590: 31 29 29 0a 7d 0a 0a 73 75 64 6f 20 70 6f 64 6d  1)).}..sudo podm
05a0: 61 6e 20 69 6d 61 67 65 20 70 75 6c 6c 20 24 49  an image pull $I
05b0: 4d 41 47 45 0a 0a 73 74 61 72 74 5f 6f 6e 65 20  MAGE..start_one 
05c0: 66 69 72 73 74 20 20 22 46 69 72 73 74 20 50 72  first  "First Pr
05d0: 6f 6a 65 63 74 22 0a 73 74 61 72 74 5f 6f 6e 65  oject".start_one
05e0: 20 73 65 63 6f 6e 64 20 22 53 65 63 6f 6e 64 20   second "Second 
05f0: 50 72 6f 6a 65 63 74 22 0a 73 74 61 72 74 5f 6f  Project".start_o
0600: 6e 65 20 74 68 69 72 64 20 20 22 54 68 69 72 64  ne third  "Third
0610: 20 50 72 6f 6a 65 63 74 22 0a 0a 73 65 74 20 2d   Project"..set -
0620: 78 0a 73 75 64 6f 20 73 79 73 74 65 6d 63 74 6c  x.sudo systemctl
0630: 20 64 61 65 6d 6f 6e 2d 72 65 6c 6f 61 64 0a 73   daemon-reload.s
0640: 75 64 6f 20 73 79 73 74 65 6d 63 74 6c 20 65 6e  udo systemctl en
0650: 61 62 6c 65 20 20 24 4e 41 4d 45 53 0a 73 75 64  able  $NAMES.sud
0660: 6f 20 73 79 73 74 65 6d 63 74 6c 20 72 65 73 74  o systemctl rest
0670: 61 72 74 20 24 4e 41 4d 45 53 0a                 art $NAMES.