Parts | |
---|---|
Participants | |
Skills | postgres, php, sysadminning |
Status | Production |
Niche | Infra |
Purpose | Infra |
Tool | Yes |
Location | Coherence |
Cost | |
Tool category |
Partkeepr_logo.png {{#if:Yes | [[Tool Owner::{{{ProjectParticipants}}} | }} {{#if:Yes | [[Tool Cost:: | }}
What
We have a PartKeepr running in the space. For user/login see PartsPC. You can find it at http://parts.vm.nurd.space (within space) or https://parts.nurdspace.nl/ (outside). Search is case sensitive and casing of our entries are probably not consistent.
Cannot login?
Try clearing browser cache.
Updating inventory
When you grab or add parts, please update the inventory of the little drawer of the red cabinets. A lot of them still needs to be updated. To check the inventory of a drawer:
- Click on Storage Location field in Filter view @ bottom of the screen
- Scan drawer barcode with hand scanner attached to the pc BUT CURRENT SCANNER SOMETIMES GIVES WRONG RESULT
- Click apply
GHBot irc commands
- !pklocate (case insensitive search)
- !pkstats (stats)
Todo
Move container from dhcp range to vm.nurd.space range (fixed IP from IPAM)Fix postgres container or install a new one with the old database (it has issues starting services and has 3 postgres versions installed).- Print missing drawers (
7x small, 2x medium, 1x large) Print missing barcodesPut barcodes on the right drawersRename original Red cabinet storage locations to RED-K in partkeepr- Enter/rename missing storage locations
Put labelled drawers in right position- Enter parts and put label on drawers that are up to date
Upgrade log
The Debian 9 machine has been updated to Debian 10. We installed php7.1 from https://deb.sury.org/. See below for the original installation.
Installation log
- Create container (debian 9, 8GB, 1 core, 1GB ram)
- Create separate volume for the install/data, this needs extra inodes because symfony2 caches everything on disk (lots of tiny files), so with regular use the fs will run out:
lvcreate -n parts_data -V 10G --thinpool vmstore vmdata mkfs -t ext4 -N 3000000 /dev/mapper/vmdata-parts_data
Mount the data-volume in the container:
mp0: volume=/dev/mapper/vmdata-parts_data,mp=/srv/partkeepr
Disable apt-recommends in /etc/apt/apt.conf:
APT::Install-Recommends "0" ; APT::Install-Suggests "0" ;
Install needed packages:
apt-get install git nginx php7.0 php7.0-fpm php7.0-ldap php7.0-bcmath \ php7.0-gd php7.0-xml php7.0-curl php7.0-pgsql php7.0-intl
IS PHP 7.1 NOW, SEE ABOVE
Grab partkeepr source:
cd /srv/partkeepr/ git clone https://github.com/partkeepr/PartKeepr.git # clones PartKeepr in the PartKeepr subdirectory. cd PartKeepr cp app/config/parameters.php.dist app/config/parameters.php # copies the default parameters to ensure composer can run.
Install composer in the current dir and run:
./composer.phar install # Installs all PartKeepr requirements
Make sure dirs are writeable (somehow symlinks didn't work):
chown -R www-data:www-data app/ chown -R www-data:www-data web/ chown -R www-data vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Resources/public/ chown -R www-data src/PartKeepr/ImageBundle/Resources/public/ chown -R www-data vendor/brainbits/fugue-icons-bundle/src/Brainbits/FugueIconsBundle/Resources/public/ chown -R www-data src/PartKeepr/FrontendBundle/Resources/public/ chown -R www-data src/PartKeepr/MobileFrontendBundle/Resources/public/ chown -R www-data vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/public/ chown -R www-data src/PartKeepr/MimetypeIconsBundle/Resources/public/
Mod /etc/php/7.0/fpm/php.ini:
date.timezone = Europe/Amsterdam
IS PHP 7.1 NOW, SEE ABOVE
Configure nginx (please update this config if you make modifications!):
server{ # from: https://wiki.partkeepr.org/wiki/KB00005:Web_Server_Configuration listen 80; #listen 443; server_name parts parts.nurd.space parts.dhcp.nurd.space; root /srv/partkeepr/PartKeepr/web/; index app.php index.html; charset utf-8; # access_log off; # log_not_found off; access_log /var/log/nginx/parts.access_log; error_log /var/log/nginx/parts.error_log; sendfile off; rewrite ^/setup/webserver-test$ /setup/tests/webservercheck.json; location / { try_files $uri $uri/ /app.php?$query_string; } location /setup { try_files $uri $uri/ /setup.php?$query_string; } location ~* \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix://run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; include fastcgi_params; # fastcgi_param HTTPS off; fastcgi_intercept_errors off; fastcgi_buffer_size 16k; fastcgi_buffers 4 16k; } # location ~ /\.ht { # deny all; # } }
IS PHP 7.1 NOW, SEE ABOVE
See below for the migrations from ancient times, otherwise go to the next step.
Browse to
parts.nurd.space/setup
and fill in all required details.
Fix shit that comes up and update this page with anything you find that doesn't work.
Migration from ancient install
First backup the database!
Postgres-db is old, needs some special fields with default values:
ALTER TABLE tempuploadedfile ADD created TALTER TABLE siprefix ADD base INT NOT NULL DEFAULT 0; ALTER TABLE partkeepruser ADD legacy BOOLEAN NOT NULL DEFAULT False; ALTER TABLE partkeepruser ADD active BOOLEAN NOT NULL DEFAULT False; ALTER TABLE partkeepruser ADD protected BOOLEAN NOT NULL DEFAULT False; ALTER TABLE footprintimage ADD created TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL DEFAULT current_timestamp; ALTER TABLE footprintattachment ADD created TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL DEFAULT current_timestamp; ALTER TABLE footprintcategory ADD lvl INT NOT NULL DEFAULT 0; ALTER TABLE part ADD removals BOOLEAN NOT NULL DEFAULT False; ALTER TABLE part ADD lowStock BOOLEAN NOT NULL DEFAULT False; UPDATE part SET averageprice = 0 WHERE averageprice IS NULL; ALTER TABLE partcategory ADD lvl INT NOT NULL default 0; ALTER TABLE partattachment ADD created TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL default current_timestamp; ALTER TABLE manufacturericlogo ADD created TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL default current_timestamp;
Copy the
data/
dir from the old install exc. the
proxies
dir.
Parsing legacy config.php didn't work for us, go through setup manually.