Compare commits

...
Sign in to create a new pull request.

30 commits

Author SHA1 Message Date
jalr
e6f23d798c Merge branch 'fix-conditional-build' into 'main'
Fix conditional build

See merge request fablab/labsync!83
2023-10-05 19:11:44 +00:00
Jakob Lechner
f6070572fa
Build security-scanner image only when necessary 2023-10-04 15:50:13 +00:00
Jakob Lechner
8e8647fdbd
Fix path matching 2023-10-04 15:33:44 +00:00
Jakob Lechner
0acc97e09e
Print docker images 2023-10-04 15:33:42 +00:00
jalr
ec6ab11c75 Merge branch 'build-docker-image-conditionally' into 'main'
Build docker image only when necessary

See merge request fablab/labsync!82
2023-10-02 15:37:59 +00:00
Jakob Lechner
a649d9686e
Build docker image only when necessary 2023-10-01 20:26:16 +00:00
jalr
f4eee886e9 Merge branch 'prusa-slicer' into 'main'
Prusa slicer

See merge request fablab/labsync!81
2023-09-28 17:35:32 +00:00
Jakob Lechner
71122c46b6
Add Ultimaker2 to Prusa slicer 2023-09-14 22:31:04 +00:00
Jakob Lechner
9e1f29dfd9
Download PrusaSlicer from GitHub 2023-09-14 22:31:02 +00:00
Jakob Lechner
d372cd9f09
Move prusa-slicer to own role 2023-09-14 21:47:22 +00:00
jalr
c04f57309b Merge branch 'lightburn-without-docker' into 'main'
Lightburn without docker

See merge request fablab/labsync!80
2023-09-14 19:57:10 +00:00
Jakob Lechner
dbb05df99f
Remove tags 2023-09-14 19:23:01 +00:00
Jakob Lechner
27ec180b79
Use lightburn without docker 2023-09-14 19:22:55 +00:00
Jakob Lechner
1e0e997f17
Update tags
The `dedicated` runner was removed
2023-07-13 10:22:20 +00:00
jalr
23529c78d9 Merge branch 'fix-ci' into 'main'
Rename CI token variable

See merge request fablab/labsync!79
2023-07-13 02:13:56 +00:00
Jakob Lechner
76da536bbd
Rename CI token variable 2023-07-13 02:10:45 +00:00
jalr
8f69e9a2d4 Merge branch 'update-inkscape-silhouette' into 'main'
Update inkscape-silhouette

See merge request fablab/labsync!78
2023-04-11 18:35:26 +00:00
Jakob Lechner
6f52c72093
Update inkscape-silhouette 2023-04-06 23:09:12 +00:00
jalr
ce78ff70c1 Merge branch 'remove-platformio' into 'main'
Disable platformio

See merge request fablab/labsync!77
2023-03-12 21:20:40 +00:00
Jakob Lechner
2db45a612b
Disable platformio
pip install without venv is not possible on bookworm. As I don't want to
fix it now, let's remove it until I have time to fix it properly.
2023-03-12 21:19:45 +00:00
jalr
61a68b6b4c Merge branch 'fix-security-scanner' into 'main'
Use virtualenv for security-scanner

See merge request fablab/labsync!76
2023-03-09 23:55:40 +00:00
Jakob Lechner
f64f9028bb
Use virtualenv 2023-03-09 23:54:57 +00:00
jalr
1dd450e0ee Merge branch 'bookworm' into 'main'
Debian bookworm

See merge request fablab/labsync!75
2023-03-03 01:04:50 +00:00
Jakob Lechner
1c158dcca2
Add font viewer 2023-02-17 18:17:37 +00:00
Jakob Lechner
2835e9380a
Remove firmware-and-graphics package
as it is not available on bookworm.
2023-02-12 00:44:22 +00:00
Jakob Lechner
db9fc6af8b
Remove HTTPS Everywhere
It is no longer maintained by EFF and deprecated in favour of native
browser support.
2023-02-11 23:10:35 +00:00
Jakob Lechner
14e7d09c69
Set wiki as homepage 2023-02-11 22:48:05 +00:00
Jakob Lechner
9c822bbba7
Update to Debian bookworm 2023-02-11 22:48:03 +00:00
jalr
1e2beafd0f Merge branch 'fix-scp-error' into 'main'
Fix Ansible file transfer issue

See merge request fablab/labsync!74
2023-01-01 16:44:05 +00:00
Jakob Lechner
5c507550a1
Fix Ansible file transfer issue
Fixes `failed to transfer file` issue

See https://github.com/hashicorp/packer/issues/11783
2023-01-01 15:04:13 +00:00
27 changed files with 358 additions and 239 deletions

View file

@ -6,8 +6,8 @@ variables:
PACKER_VERSION: 1.4.3 PACKER_VERSION: 1.4.3
ANNOUNCE: http://labsync.lab.fablab-nea.de:6969/announce ANNOUNCE: http://labsync.lab.fablab-nea.de:6969/announce
WEBSEED: http://labsync.lab.fablab-nea.de/labsync/$CI_COMMIT_REF_NAME/$CI_PIPELINE_ID/images WEBSEED: http://labsync.lab.fablab-nea.de/labsync/$CI_COMMIT_REF_NAME/$CI_PIPELINE_ID/images
DOCKER_IMAGE_BUILDER: ${CI_REGISTRY_IMAGE}/labsync-builder:$CI_COMMIT_REF_SLUG DOCKER_IMAGE_BUILDER: ${CI_REGISTRY_IMAGE}/labsync-builder:main
DOCKER_IMAGE_SECURITY_SCANNER: ${CI_REGISTRY_IMAGE}/security-scanner:$CI_COMMIT_REF_SLUG DOCKER_IMAGE_SECURITY_SCANNER: ${CI_REGISTRY_IMAGE}/security-scanner:main
DOCKER_TLS_CERTDIR: "" DOCKER_TLS_CERTDIR: ""
stages: stages:
@ -21,17 +21,26 @@ dockerimage_builder:
- apk add --no-cache make - apk add --no-cache make
services: services:
- docker:dind - docker:dind
variables:
DOCKER_IMAGE_BUILDER: ${CI_REGISTRY_IMAGE}/labsync-builder:$CI_COMMIT_REF_SLUG
script: script:
- docker pull $DOCKER_IMAGE_BUILDER || true - docker pull $DOCKER_IMAGE_BUILDER || true
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- make builderimg - make builderimg
- docker push $DOCKER_IMAGE_BUILDER - docker push $DOCKER_IMAGE_BUILDER
tags: - echo "DOCKER_IMAGE_BUILDER=$DOCKER_IMAGE_BUILDER" >> build.env
- fablab artifacts:
- ssd reports:
except: dotenv: build.env
refs: rules:
- schedules - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: on_success
- if:
changes:
paths:
- builder/**/*
compare_to: main
when: on_success
dockerimage_security_scanner: dockerimage_security_scanner:
stage: prepare stage: prepare
@ -41,15 +50,22 @@ dockerimage_security_scanner:
- docker:dind - docker:dind
script: script:
- docker pull $DOCKER_IMAGE_SECURITY_SCANNER || true - docker pull $DOCKER_IMAGE_SECURITY_SCANNER || true
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- make secscanimg - make secscanimg
- docker push $DOCKER_IMAGE_SECURITY_SCANNER - docker push $DOCKER_IMAGE_SECURITY_SCANNER
tags: - echo "DOCKER_IMAGE_SECURITY_SCANNER=${CI_REGISTRY_IMAGE}/security-scanner:$CI_COMMIT_REF_SLUG" >> build.env
- fablab artifacts:
- ssd reports:
except: dotenv: build.env
refs: rules:
- schedules - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: on_success
- if:
changes:
paths:
- security-scanner/**/*
compare_to: main
when: on_success
security_scanner: security_scanner:
stage: check stage: check
@ -57,7 +73,7 @@ security_scanner:
script: script:
- set -x - set -x
- export GITLAB_URL="$(echo "$CI_PROJECT_URL" | grep -Eo '^https?://[^/]*')" - export GITLAB_URL="$(echo "$CI_PROJECT_URL" | grep -Eo '^https?://[^/]*')"
- python3 -m security_scanner $target - /code/venv/bin/python -m security_scanner $target
only: only:
refs: refs:
- schedules - schedules
@ -65,8 +81,17 @@ security_scanner:
variables: variables:
- $task == "security-scanner" - $task == "security-scanner"
- $target - $target
tags:
- dedicated lightburn-download:
stage: prepare
image: alpine
script:
- mkdir -p packer/ansible/roles/lightburn/files
- 'wget -O packer/ansible/roles/lightburn/files/lightburn.zip --header "JOB-TOKEN: $CI_JOB_TOKEN" "${CI_SERVER_URL}/api/v4/projects/fablab%2Flightburn-patched/jobs/artifacts/main/download?job=patch-Linux64"'
artifacts:
paths:
- packer/ansible/roles/lightburn/files/lightburn.zip
expire_in: 4 hours
.squashfs_template: &squashfs_template .squashfs_template: &squashfs_template
image: $DOCKER_IMAGE_BUILDER image: $DOCKER_IMAGE_BUILDER
@ -74,7 +99,9 @@ security_scanner:
services: services:
- docker:dind - docker:dind
script: script:
- scripts/packer.sh debian-bullseye - echo DOCKER_IMAGE_BUILDER=$DOCKER_IMAGE_BUILDER
- echo DOCKER_IMAGE_SECURITY_SCANNER=$DOCKER_IMAGE_SECURITY_SCANNER
- scripts/packer.sh debian-bookworm
- aws --endpoint-url "$AWS_ENDPOINT_URL" s3 cp images/ "s3://$AWS_BUCKET/$CI_COMMIT_REF_SLUG/$CI_JOB_ID/" --recursive --no-progress - aws --endpoint-url "$AWS_ENDPOINT_URL" s3 cp images/ "s3://$AWS_BUCKET/$CI_COMMIT_REF_SLUG/$CI_JOB_ID/" --recursive --no-progress
artifacts: artifacts:
paths: paths:
@ -84,9 +111,6 @@ security_scanner:
- images/*.linux - images/*.linux
#- images/*.squashfs #- images/*.squashfs
- images/*.torrent - images/*.torrent
tags:
- fablab
- ssd
squashfs_featurebranch: squashfs_featurebranch:
<<: *squashfs_template <<: *squashfs_template

View file

@ -22,7 +22,7 @@ qemu_network = 10.2.2.0
qemu_netmask = 24 qemu_netmask = 24
qemu_vm_ip = 10.2.2.10 qemu_vm_ip = 10.2.2.10
qemu_disk = tmp/qemu-disk.img qemu_disk = tmp/qemu-disk.img
qemu_target ?= debian-bullseye qemu_target ?= debian-bookworm
qemu_kernel = $(qemu_target).linux qemu_kernel = $(qemu_target).linux
qemu_torrent = $(qemu_target).torrent qemu_torrent = $(qemu_target).torrent
qemu_initramfs = $(shell \ qemu_initramfs = $(shell \
@ -35,7 +35,7 @@ fi \
ci_environment=$(shell env | sed -n 's/^\(CI_.*\)=.*/-e \1/p') ci_environment=$(shell env | sed -n 's/^\(CI_.*\)=.*/-e \1/p')
.PHONY: default .PHONY: default
default: builderimg images/debian-bullseye.squashfs default: builderimg images/debian-bookworm.squashfs
.PHONY: clean .PHONY: clean
clean: clean:
@ -60,7 +60,7 @@ images:
[ ! -d "$@" ] && mkdir "$@" [ ! -d "$@" ] && mkdir "$@"
touch "$@" touch "$@"
images/debian-bullseye.squashfs: images images/debian-bookworm.squashfs: images
docker run \ docker run \
--rm \ --rm \
-v /var/run/docker.sock:/var/run/docker.sock \ -v /var/run/docker.sock:/var/run/docker.sock \
@ -72,9 +72,9 @@ images/debian-bullseye.squashfs: images
$(ci_environment) \ $(ci_environment) \
"$(DOCKER_IMAGE_BUILDER)" \ "$(DOCKER_IMAGE_BUILDER)" \
scripts/packer.sh \ scripts/packer.sh \
debian-bullseye debian-bookworm
images/debian-bullseye.torrent: images images/debian-bookworm.torrent: images
docker run \ docker run \
--rm \ --rm \
-v "${PWD}:${PWD}" \ -v "${PWD}:${PWD}" \
@ -82,7 +82,7 @@ images/debian-bullseye.torrent: images
-e "WEBSEED=$(WEBSEED)" \ -e "WEBSEED=$(WEBSEED)" \
"$(DOCKER_IMAGE_BUILDER)" \ "$(DOCKER_IMAGE_BUILDER)" \
scripts/torrent.sh \ scripts/torrent.sh \
debian-bullseye debian-bookworm
.PHONY: ansible .PHONY: ansible
ansible: ansible:
@ -104,24 +104,24 @@ ansible:
# updates the initramfs # updates the initramfs
# only used for development # only used for development
images/debian-bullseye.initramfs.dev: tmp/initramfs-extracted/debian-bullseye packer/initramfs/labsync images/debian-bookworm.initramfs.dev: tmp/initramfs-extracted/debian-bookworm packer/initramfs/labsync
cp packer/initramfs/labsync tmp/initramfs-extracted/debian-bullseye/scripts/labsync cp packer/initramfs/labsync tmp/initramfs-extracted/debian-bookworm/scripts/labsync
(cd tmp/initramfs-extracted/debian-bullseye && find . | cpio -H newc -o | gzip > $(CWD)/images/debian-bullseye.initramfs.dev) (cd tmp/initramfs-extracted/debian-bookworm && find . | cpio -H newc -o | gzip > $(CWD)/images/debian-bookworm.initramfs.dev)
tmp: tmp:
[ ! -d "$@" ] && mkdir "$@" || true [ ! -d "$@" ] && mkdir "$@" || true
tmp/initramfs-extracted/debian-bullseye: images/debian-bullseye.initramfs tmp/initramfs-extracted/debian-bookworm: images/debian-bookworm.initramfs
rm -rf tmp/initramfs-extracted/debian-bullseye rm -rf tmp/initramfs-extracted/debian-bookworm
mkdir -p tmp/initramfs-extracted/debian-bullseye mkdir -p tmp/initramfs-extracted/debian-bookworm
(cd tmp/initramfs-extracted/debian-bullseye && zcat "$(CWD)/images/debian-bullseye.initramfs" | cpio -i) (cd tmp/initramfs-extracted/debian-bookworm && zcat "$(CWD)/images/debian-bookworm.initramfs" | cpio -i)
touch tmp/initramfs-extracted/debian-bullseye touch tmp/initramfs-extracted/debian-bookworm
$(qemu_disk): tmp $(qemu_disk): tmp
qemu-img create "$@" 20G qemu-img create "$@" 20G
tmp/netboot.tar.gz: tmp tmp/netboot.tar.gz: tmp
wget -c -O "$@" https://cdn-aws.deb.debian.org/debian/dists/bullseye/main/installer-amd64/current/images/netboot/netboot.tar.gz wget -c -O "$@" https://cdn-aws.deb.debian.org/debian/dists/bookworm/main/installer-amd64/current/images/netboot/netboot.tar.gz
touch "$@" touch "$@"
tmp/tftproot: tmp/netboot.tar.gz tmp/tftproot: tmp/netboot.tar.gz

View file

@ -11,6 +11,8 @@
- role: firefox - role: firefox
- role: windowmanager - role: windowmanager
- role: inkscape - role: inkscape
- role: lightburn
- role: prusa-slicer
- role: fablab - role: fablab
- role: hardware - role: hardware
- role: docker - role: docker
@ -44,65 +46,18 @@
version: 3.3.1 version: 3.3.1
lightburn: lightburn:
dockerimage: r.jalr.de/fablab/lightburn dockerimage: r.jalr.de/fablab/lightburn
prusa_slicer:
settings: |
no_controller = 1
no_defaults = 1
preset_update = 0
show_splash_screen = 0
use_inches = 0
version_check = 0
view_mode = expert
[filaments]
AmazonBasics TPU @MINI = 1
Das Filament PLA = 1
Generic PETG = 1
Generic PETG @MINI = 1
Generic PETG @MMU2 = 1
Generic PLA = 1
Generic PLA @MMU2 = 1
Prusament ASA = 1
Prusament ASA @MINI = 1
Prusament ASA @MMU2 = 1
Prusament PC Blend = 1
Prusament PC Blend @MINI = 1
Prusament PC Blend @MMU2 = 1
Prusament PETG = 1
Prusament PETG @MINI = 1
Prusament PETG @MMU2 = 1
Prusament PLA = 1
Prusament PLA @MMU2 = 1
Prusament PVB = 1
Prusament PVB @MMU2 = 1
Verbatim BVOH = 1
Verbatim BVOH @MMU2 = 1
[presets]
filament = Prusament PLA
physical_printer =
print = 0.15mm QUALITY @MK3
printer = Original Prusa i3 MK3
sla_material =
sla_print =
[vendor:PrusaResearch]
model:MK3 = 0.4
model:MK3SMMU2S = 0.4
firefox: firefox:
language_packs: language_packs:
- de - de
extensions: extensions:
- uBlock0@raymondhill.net - uBlock0@raymondhill.net
- https-everywhere@eff.org
debian_sections: debian_sections:
- main - main
- contrib - contrib
- non-free - non-free
debian_mirror: http://ftp.de.debian.org/debian debian_mirror: http://ftp.de.debian.org/debian
hardware: hardware:
firmware: firmware: []
- firmware-amd-graphics
greeting: greeting:
title: Willkommen im FabLab Bad Windsheim title: Willkommen im FabLab Bad Windsheim
content: > content: >
@ -111,3 +66,56 @@
Du hast Dich mit einem Gast-Account angemeldet. Alle Daten werden nach Du hast Dich mit einem Gast-Account angemeldet. Alle Daten werden nach
der Anmeldung gelöscht. Wenn Du Deine Daten dauerhaft speichern der Anmeldung gelöscht. Wenn Du Deine Daten dauerhaft speichern
möchtest, lege Dir bitte einen Account an! möchtest, lege Dir bitte einen Account an!
lightburn:
devices:
- https://raw.githubusercontent.com/fablab-nea/LaserKutter/main/lightburn/LaserKutter.lbdev
prusa_slicer:
settings: |
no_controller = 1
no_defaults = 1
preset_update = 0
show_splash_screen = 0
use_inches = 0
version_check = 0
view_mode = expert
tls_accepted_cert_store_location = /etc/ssl/certs/ca-certificates.crt
tls_cert_store_accepted = yes
[filaments]
AmazonBasics TPU @MINI = 1
Das Filament PLA = 1
Generic PETG = 1
Generic PETG @MINI = 1
Generic PETG @MMU2 = 1
Generic PLA = 1
Generic PLA @MMU2 = 1
Prusament ASA = 1
Prusament ASA @MINI = 1
Prusament ASA @MMU2 = 1
Prusament PC Blend = 1
Prusament PC Blend @MINI = 1
Prusament PC Blend @MMU2 = 1
Prusament PETG = 1
Prusament PETG @MINI = 1
Prusament PETG @MMU2 = 1
Prusament PLA = 1
Prusament PLA @MMU2 = 1
Prusament PVB = 1
Prusament PVB @MMU2 = 1
Verbatim BVOH = 1
Verbatim BVOH @MMU2 = 1
[presets]
filament = Prusament PLA
physical_printer =
print = 0.15mm QUALITY @MK3
printer = Original Prusa i3 MK3
sla_material =
sla_print =
[vendor:PrusaResearch]
model:MK3 = 0.4
model:MK3SMMU2S = 0.4
[vendor:Ultimaker]
model:ULTIMAKER2 = 0.4

View file

@ -1,9 +0,0 @@
[Desktop Entry]
Name=LightBurn
GenericName=LightBurn
Comment=Laser Cutter Job Control Application
Exec=x-terminal-emulator -e 'sudo /usr/local/bin/lightburn'
Icon=/usr/local/share/lightburn/lightburn.png
Terminal=false
Type=Application
Categories=Graphics

View file

@ -1,34 +0,0 @@
#!/usr/bin/env bash
. /etc/default/lightburn
if [ ! -z "$SUDO_COMMAND" ] && [ "$SUDO_COMMAND" = "$0" ]; then
home="$(getent passwd "$SUDO_UID" | cut -d: -f6)"
export PUID="$SUDO_UID"
export PGID="$SUDO_GID"
else
home="$HOME"
export PUID=$(id -u)
export PGID=$(id -g)
fi
config_dir="$home/.config/lightburn"
mkdir -p "$config_dir"
media="/media/$(id -un $PUID)"
if [ -e "$media" ]; then
media_volume="-v $media:/media"
fi
docker run \
--rm \
-e PUID \
-e PGID \
-e DISPLAY \
-v /tmp/.X11-unix/:/tmp/.X11-unix/ \
-v $config_dir:/config/ \
-v $home:/workdir/ \
$media_volume \
--network=none \
"$LIGHTBURN_DOCKER_IMAGE"

View file

@ -1,66 +0,0 @@
---
- file:
path: /usr/local/share/lightburn
state: directory
mode: "0755"
owner: root
group: root
- name: copy icon
copy:
src: lightburn/lightburn.png
dest: /usr/local/share/lightburn/lightburn.png
owner: root
group: root
mode: "0644"
- name: copy script
copy:
src: lightburn/lightburn.sh
dest: /usr/local/bin/lightburn
owner: root
group: root
mode: "0755"
- name: add lightburn configuration
template:
src: lightburn/lightburn.j2
dest: /etc/default/lightburn
owner: root
group: root
mode: "0644"
- name: add lightburn to applications menu
copy:
src: lightburn/lightburn.desktop
dest: /usr/share/applications/lightburn.desktop
owner: root
group: root
mode: "0644"
- name: add group
group:
name: lightburn
system: yes
- name: add sudoers config
copy:
content: "%lightburn ALL=/usr/local/bin/lightburn, NOPASSWD:/usr/local/bin/lightburn\n"
dest: /etc/sudoers.d/lightburn
owner: root
group: root
mode: "0644"
- name: ensure guest-account settings directory exists
file:
path: /etc/guest-account
state: directory
mode: "0755"
owner: root
group: root
- name: add lightburn group to guest account
lineinfile:
path: /etc/guest-account/groups
line: lightburn
create: yes

View file

@ -18,14 +18,8 @@
- import_tasks: visicut.yml - import_tasks: visicut.yml
tags: tags:
- fablab:visicut - fablab:visicut
- import_tasks: lightburn.yml # - import_tasks: platformio.yml
tags: # tags:
- fablab:lightburn # - fablab:platformio
- import_tasks: prusa.yml
tags:
- fablab:prusa
- import_tasks: platformio.yml
tags:
- fablab:platformio
tags: tags:
- fablab - fablab

View file

@ -1,25 +0,0 @@
---
- name: install slic3r-prusa
apt:
name: slic3r-prusa
state: present
- name: create skel directories
file:
path: "/etc/skel/{{ item }}"
state: directory
loop:
- .config
- .config/PrusaSlicer
- .config/PrusaSlicer/vendor
- name: create symlink to vendor profiles
file:
src: /usr/share/PrusaSlicer/profiles/PrusaResearch.ini
dest: /etc/skel/.config/PrusaSlicer/vendor/PrusaResearch.ini
state: link
- name: Copy Prusa slicer settings
copy:
content: "{{ fablab.prusa_slicer.settings }}"
dest: /etc/skel/.config/PrusaSlicer/PrusaSlicer.ini

View file

@ -1 +0,0 @@
LIGHTBURN_DOCKER_IMAGE='{{ fablab.lightburn.dockerimage }}'

View file

@ -19,7 +19,7 @@
"NoDefaultBookmarks": true, "NoDefaultBookmarks": true,
"OfferToSaveLogins": true, "OfferToSaveLogins": true,
"Homepage": { "Homepage": {
"URL": "about:blank" "URL": "https://wiki.fablab-nea.de/"
}, },
"OverrideFirstRunPage": "", "OverrideFirstRunPage": "",
"SearchEngines": { "SearchEngines": {

View file

@ -3,5 +3,11 @@
- import_tasks: google.yml - import_tasks: google.yml
tags: tags:
- fonts:google - fonts:google
- name: Install font viewer
apt:
name:
- fontmatrix
tags:
- fonts:fontmatrix
tags: tags:
- fonts - fonts

@ -1 +1 @@
Subproject commit 05d9c57336b13028c01c5bfd850431708c934016 Subproject commit 2f40eef85264eb6646ea7e89cbd4659560b88235

View file

@ -0,0 +1 @@
*.zip

View file

@ -0,0 +1,6 @@
[Desktop Entry]
Name=LightBurn
Exec=/opt/LightBurn/LightBurn
Icon=/opt/LightBurn/LightBurn.png
Type=Application
Categories=Graphics;VectorGraphics;Engineering;

View file

@ -0,0 +1,34 @@
- name: Download devices files
uri:
url: "{{ device_url }}"
return_content: true
loop: "{{ lightburn.devices }}"
loop_control:
loop_var: device_url
register: lightburn_downloaded_devices
- name: Create lightburn settings
set_fact:
lightburn_devices: "{{ lightburn_devices | default([]) + [device_settings] }}"
vars:
device_settings: "{{ (device.content | from_json)['DeviceList'][0] }}"
loop: "{{ lightburn_downloaded_devices.results }}"
loop_control:
loop_var: device
label: "{{ device_settings.DisplayName }}"
- name: Create settings directory
file:
path: "{{ item }}"
state: directory
loop:
- /etc/skel/.config
- /etc/skel/.config/LightBurn
- name: Create settings file
copy:
dest: /etc/skel/.config/LightBurn/prefs.ini
content: "{{ lightburn_settings | to_nice_json() }}"
vars:
lightburn_settings:
DeviceList: "{{ lightburn_devices }}"

View file

@ -0,0 +1,13 @@
---
- name: Extract zip file
unarchive:
src: lightburn.zip
dest: /opt
- name: Create applications directory
file:
path: /usr/local/share/applications/
state: directory
- name: Copy desktop file
copy:
src: lightburn.desktop
dest: /usr/local/share/applications/lightburn.desktop

View file

@ -0,0 +1,10 @@
---
- block:
- import_tasks: install.yml
tags:
- lightburn:install
- import_tasks: devices.yml
tags:
- lightburn:devices
tags:
- lightburn

View file

@ -0,0 +1,2 @@
---
prusa_slicer_use_package: false

View file

@ -0,0 +1,9 @@
[Desktop Entry]
Name=Prusa GCode viewer
Exec=/opt/PrusaSlicer/bin/prusa-slicer --gcodeviewer %F
Icon=/opt/PrusaSlicer/resources/icons/PrusaSlicer-gcodeviewer.svg
Terminal=false
Type=Application
MimeType=text/x.gcode;
Categories=Graphics;3DGraphics;
Keywords=3D;Printing;Slicer;

View file

@ -0,0 +1,12 @@
[Desktop Entry]
Name=PrusaSlicer
GenericName=3D Printing Software
Terminal=false
Exec=/opt/PrusaSlicer/bin/prusa-slicer %F
Icon=/opt/PrusaSlicer/resources/icons/PrusaSlicer.png
Type=Application
MimeType=model/stl;application/vnd.ms-3mfdocument;application/prs.wavefront-obj;application/x-amf;
Categories=Graphics;3DGraphics;Engineering;
Keywords=3D;Printing;Slicer;slice;3D;printer;convert;gcode;stl;obj;amf;SLA
StartupNotify=false
StartupWMClass=prusa-slicer

View file

@ -0,0 +1,46 @@
---
- set_fact:
prusa_slicer_profiles_directory: /usr/share/PrusaSlicer/profiles
when: prusa_slicer_use_package | bool
- set_fact:
prusa_slicer_profiles_directory: /opt/PrusaSlicer/resources/profiles
when: not prusa_slicer_use_package | bool
- name: create skel directories
file:
path: "/etc/skel/{{ item }}"
state: directory
loop:
- .config
- .config/PrusaSlicer
- .config/PrusaSlicer/vendor
- name: create symlink to vendor profiles
file:
src: "{{ prusa_slicer_profiles_directory }}/{{ item }}.ini"
dest: /etc/skel/.config/PrusaSlicer/vendor/{{ item }}.ini
state: link
loop:
- PrusaResearch
- Ultimaker
- name: Stat /opt/PrusaSlicer
stat:
path: /opt/PrusaSlicer
register: prusa_slicer_stat
- name: Set version
set_fact:
prusa_slicer_version: "{{ prusa_slicer_stat.stat.lnk_target | regex_replace('^/opt/PrusaSlicer-(.*)-[0-9]{12}$', '\\1') }}"
when: prusa_slicer_stat.stat.exists and prusa_slicer_stat.stat.islnk
- debug:
var: prusa_slicer_version
- name: Copy Prusa slicer settings
copy:
content: |
version_system_info_sent = {{ prusa_slicer_version | default('') }}
{{ prusa_slicer.settings }}
dest: /etc/skel/.config/PrusaSlicer/PrusaSlicer.ini

View file

@ -0,0 +1,60 @@
---
- name: Get latest release
uri:
url: https://api.github.com/repos/prusa3d/PrusaSlicer/releases/latest
return_content: true
register: prusa_slicer_release
- name: Create tarball tempfile
tempfile:
state: file
suffix: .tar.gz
register: prusa_slicer_tarball
- name: Select asset
set_fact:
prusa_slicer_asset: "{{ asset }}"
when: "asset.name | regex_search('PrusaSlicer-.*linux-x64-GTK3.*\\.tar\\.bz2$')"
loop: "{{ prusa_slicer_release.json.assets }}"
loop_control:
loop_var: asset
label: "{{ asset.name }}"
- name: Download release file
get_url:
url: "{{ prusa_slicer_asset.browser_download_url }}"
dest: "{{ prusa_slicer_tarball.path }}"
force: true
- name: Extract tarball
unarchive:
src: "{{ prusa_slicer_tarball.path }}"
dest: /opt
remote_src: true
- name: Remove tarball
ansible.builtin.file:
path: "{{ prusa_slicer_tarball.path }}"
state: absent
when: prusa_slicer_tarball.path is defined
- name: Create symlink
file:
src: "/opt/{{ prusa_slicer_directory }}"
dest: "/opt/PrusaSlicer"
state: link
vars:
prusa_slicer_directory: "{{ prusa_slicer_asset.name | regex_replace('\\.tar\\.bz2$', '') }}"
- name: Create applications directory
file:
path: /usr/local/share/applications/
state: directory
- name: Copy desktop files
copy:
src: "{{ item }}.desktop"
dest: /usr/local/share/applications/{{ item }}.desktop
loop:
- PrusaSlicer
- PrusaGcodeviewer

View file

@ -0,0 +1,18 @@
---
- block:
- import_tasks: package.yml
when: prusa_slicer_use_package | bool
tags:
- prusa-slicer:install
- import_tasks: install_from_github.yml
when: not prusa_slicer_use_package | bool
tags:
- prusa-slicer:install
- import_tasks: configure.yml
tags:
- prusa-slicer:configure
tags:
- prusa-slicer

View file

@ -0,0 +1,5 @@
---
- name: install slic3r-prusa
apt:
name: slic3r-prusa
state: present

View file

@ -20,7 +20,7 @@ variables:
builders: builders:
- discard: true - discard: true
image: debian:bullseye image: debian:bookworm
type: docker type: docker
volumes: volumes:
'{{user `images`}}': /tmp/images '{{user `images`}}': /tmp/images
@ -62,7 +62,7 @@ provisioners:
- cp $(find /boot/ -name 'vmlinuz-*' | sort -V | tail -n 1) '/tmp/images/{{user `linux_file`}}' - cp $(find /boot/ -name 'vmlinuz-*' | sort -V | tail -n 1) '/tmp/images/{{user `linux_file`}}'
type: shell type: shell
- inline: - inline:
- apt-get -y install openssh-server python lsb-release - apt-get -y install openssh-server python3 lsb-release
type: shell type: shell
- playbook_file: ansible/playbook.yml - playbook_file: ansible/playbook.yml
type: ansible type: ansible
@ -70,6 +70,9 @@ provisioners:
ansible_env_vars: ansible_env_vars:
- "ANSIBLE_SSH_ARGS='-o HostkeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa'" - "ANSIBLE_SSH_ARGS='-o HostkeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa'"
- "ANSIBLE_PYTHON_INTERPRETER=/usr/bin/python3" - "ANSIBLE_PYTHON_INTERPRETER=/usr/bin/python3"
extra_arguments:
- "--scp-extra-args"
- "'-O'"
- inline: - inline:
- rm /boot && mkdir /boot - rm /boot && mkdir /boot
type: shell type: shell

View file

@ -1,4 +1,4 @@
FROM debian:bullseye-slim FROM debian:bookworm-slim
RUN apt-get update \ RUN apt-get update \
&& apt-get -y install \ && apt-get -y install \
@ -7,14 +7,17 @@ RUN apt-get update \
python3 \ python3 \
python3-apt \ python3-apt \
python3-pip \ python3-pip \
python3-venv \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
COPY setup.py /code/setup.py COPY setup.py /code/setup.py
WORKDIR /code WORKDIR /code
RUN pip3 install -e . RUN python3 -m venv --system-site-packages venv
RUN venv/bin/pip install -e .
ADD . /code ADD . /code
RUN python3 setup.py install RUN venv/bin/python setup.py install

View file

@ -1,7 +1,7 @@
label labsync label labsync
menu label ^labsync menu label ^labsync
kernel images/debian-bullseye.linux kernel images/debian-bookworm.linux
append initrd=images/debian-bullseye.initramfs.dev boot=labsync labsync_disk=sda labsync_partsize_boot=512 labsync_torrent=http://10.2.2.1/debian-bullseye.torrent quiet vga=792 ip=10.2.2.10:::255.255.255.0:qemu-host:ens3:off labsync_wait=pause append initrd=images/debian-bookworm.initramfs.dev boot=labsync labsync_disk=sda labsync_partsize_boot=512 labsync_torrent=http://10.2.2.1/debian-bookworm.torrent quiet vga=792 ip=10.2.2.10:::255.255.255.0:qemu-host:ens3:off labsync_wait=pause
label install label install
menu label ^Install menu label ^Install