Advertisement
E-werd

Throat Install Guide, base Alpine Linux 3.10 multi-db

Jun 25th, 2019
429
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Title: Throat Install Guide, base Alpine Linux 3.10 multi-db
  2.  
  3. ###
  4. ### Assume basic installation of Alpine Linux, openssh server installed and setup, a non-root user created and added to /etc/sudoers, bash installed
  5. ###
  6.  
  7. ## Switch to root and install dependencies
  8. sudo su -
  9. apk add --no-cache git bash build-base libffi-dev openssl-dev bzip2-dev zlib-dev readline-dev sqlite-dev curl bash bash-doc bash-completion redis npm jpeg-dev exiv2-dev boost-dev libxml2-dev libxslt-dev freetype-dev
  10.  
  11. ## This is needed for the pip stage later on
  12. ln -s /usr/lib/libboost_python37.so /usr/lib/libboost_python3.so
  13.  
  14. ## Create user under which throat is installed and switch to it.
  15. adduser --disabled-password --gecos "" -s /bin/bash app
  16. su - app
  17.  
  18. ## Setup pyenv
  19. curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
  20. echo 'export PATH="/home/app/.pyenv/bin:$PATH"' >> ~/.profile
  21. echo 'eval "$(pyenv init -)"' >> ~/.profile
  22. echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.profile
  23. exit
  24.  
  25. ### Database-related setup, pick your poison
  26.  
  27. ##
  28. ## [M] For MySQL/MariaDB:
  29. ##
  30. apk add --no-cache mariadb mariadb-client mariadb-connector-c-dev
  31. mysql_install_db --user=mysql --datadir=/var/lib/mysql
  32. rc-service mariadb start
  33. mysqladmin -u root password "Pass1234"
  34. rc-update add mariadb default
  35. mysql -u root -p
  36. CREATE DATABASE throat;
  37. CREATE USER 'throat'@localhost IDENTIFIED BY 'Pass1234';
  38. GRANT ALL PRIVILEGES ON throat.* TO 'throat'@localhost;
  39. exit
  40. ## [M] end
  41.  
  42. ##
  43. ## [P] For Postgresql:
  44. ##
  45. apk add --no-cache postgresql postgresql-client postgresql-dev
  46. sudo su - postgres
  47. psql
  48. CREATE DATABASE throat;
  49. CREATE USER throat PASSWORD 'Pass1234';
  50. GRANT ALL PRIVILEGES ON DATABASE throat TO throat;
  51. exit
  52. ## [P] end
  53.  
  54. ##
  55. ## [S] For SQLite:
  56. ##
  57.  
  58. apk add --no-cache sqlite
  59.  
  60. ## [S] end
  61.  
  62. ## Start redis and add to startup
  63. rc-service redis start
  64. rc-update add redis default
  65.  
  66. ## Switch back to app and install python and set virtualenv
  67. su - app
  68. pyenv install 3.6.8
  69. pyenv virtualenv 3.6.8 app
  70.  
  71. ## Download throat, build css, assign dir to aforementioned virtualenv
  72. git clone https://phab.phuks.co/source/throat.git
  73. cd throat
  74. npm install
  75. npm run build
  76. pyenv local app
  77.  
  78. ## Upgrade pip, get requirements
  79. pip install --upgrade pip
  80. pip install -r requirements.txt
  81.  
  82. ##
  83. ## [S] For SQLite:
  84. ##
  85. sqlite3 throat.db
  86. .quit
  87. ## [S] end
  88.  
  89.  
  90. ## Create and modify config
  91. cp example.config.py config.py
  92. nano config.py
  93.  
  94. ##
  95. ## Database connection configuration
  96. ##
  97.  
  98. # [M] For MySQL/MariaDB:
  99. DATABASE = {
  100. 'host': 'localhost',
  101. 'name': 'throat',
  102. 'engine': 'MySQLDatabase',
  103. 'charset': 'utf8mb4',
  104. 'user': 'throat',
  105. 'password': 'Pass1234',
  106. }
  107. # [M] end
  108.  
  109. # [P] For Postgresql:
  110. DATABASE = {
  111. 'host': 'localhost',
  112. 'name': 'throat',
  113. 'engine': 'PostgresqlDatabase',
  114. 'user': 'throat',
  115. 'password': 'Pass1234',
  116. 'autorollback': True
  117. }
  118. # [P] end
  119.  
  120. # [S] For SQLite:
  121. DATABASE = {
  122. 'name': '/home/app/throat/throat.db',
  123. 'engine': 'SqliteDatabase',
  124. }
  125. # [S] end
  126.  
  127. #----------
  128.  
  129. ## Setup database
  130. scripts/migrate.py
  131.  
  132. ## to be able to access it from outside localhost...
  133. nano wsgi.py
  134. #add ", host='0.0.0.0'" to "socketio.run(app, debug=True)" inside parentheses
  135.  
  136. ## to run: ./wsgi.py
  137. ## find IP of your machine (ifconfig), visit: http://<ip address>:5000
  138.  
  139. ## Create an account for admin, close wsgi, then run:
  140. scripts/admins.py --add admin
  141.  
  142. ## To add created subs to defaults:
  143. scripts/defaults.py -a subname
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement