orthanc
orthanc + keycloak组合的模式如何写脚本访问受保护的资源
这里的文档详细描述了配置过程。
为了让脚本能够自由登录orthanc,可以在orthanc realm里创建一个script-bot用户,给它对应的权限。
添加一个api-key,并给它一个强密码
随后就可以在脚本中通过api-key进行操作了
12345678910111213import requests, urllib3urllib3.disable_warnings() # 如果用自签证书ORTHANC = "https://imaging.122.205.51.104.nip.io/orthanc"API_KEY = "123123123123"r = requests.get(f"{ORTHANC}/patients", headers={"api-key": API_KEY}, verify=False) # 自签证书设置verify=Falser.raise_for_stat ...
虚拟机相关
hyper-V一个比较方便调整窗口大小的方法:查看-关闭增强会话
增强会话可以双向访问剪贴板、USB设备等
记录一下常用Linux命令!
安装oh-my-zsh
123456git clone https://gitee.com/hailin_cool/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestionsgit clone https://gitee.com/Annihilater/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlightingZSH_THEME="agnoster"sudo apt install fonts-powerline
安装ssh
1sudo apt install openssh-client openssh-server
系统级禁用密码登录
123456# /etc/ssh/sshd_configPasswordAuthentication noPubkeyAuthentication yessystemctl restart ssh # systemctl -l --type service --all|grep s ...
conda指令失效的问题
问题:
123usage: conda-script.py [-h] [-v] [--no-plugins] [-V] COMMAND ...conda-script.py: error: argument COMMAND: invalid choice: '' (choose from 'clean', 'compare', 'config', 'create', 'info', 'init', 'install', 'list', 'notices', 'package', 'remove', 'uninstall', 'rename', 'run', 'search', 'update', 'upgrade', 'd ...
nibabel不能原地写回影像的问题
问题背景:因为我太菜了……为了图省事需要对一个nii文件反复读取、修改、写回磁盘。但是突然之间报这个问题:
PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。: ‘centiloid_eval\AV45\iter_rigid\ED05_PET.nii’
大概代码如下:
1234567...for path, affine in zip(paths, corrected_affines): nii = nib.load(path) new_nii = nib.Nifti1Image(nii.get_fdata(), affine, nii.header) os.remove(path) # PermissionError results.append(new_nii)...
破案:numpy的mmap问题。
mmap解释:memory-mapped file,一个非常强大的操作系统功能,允许你将文件直接映射到内存中,使得程序可以像操作内存一样直接访问文件数据,而不需要显式地读取或写入文件。
上述代码改为
1n ...
PVE 8.3安装不成功重启后进grub解决方法
问题:安装PVE 8.3重启后不能正确进入PVE,而是自动进入grub rescue模式(grub命令行)。
解决:主要方案。解决思路为手动加载内核和启动文件,结合gpt具体解决步骤如下:
查找内核文件(vmlinuz)、启动文件(initrd)位置12ls# (proc) (pve-root) (pve-server) (hd0) (hd0,gpt3)...
内核文件和启动文件都在pve-root/boot下。可以通过ls (pve-root)/查看里面有什么东西。要注意的是,括号()和分隔符/都不可以少!
设置根分区1set root=(lvm/pve-root)
加载内核1linux /boot/vmlinuz-<version> root=/dev/mapper/pve-root
这里稍微解释一下:这条指令做两件事情,一个是加载内核到内存,再一个是指定内核应该挂载哪个根文件系统。如果是一个正常的OS,就应该挂载一个物理卷(Volume),比如/dev/sda1;如果是PVE,默认就是逻辑卷/dev/mapper/pve-root。可以回想一下hyper-v的操作 ...
homelab踩坑记
docker与反向代理篇
没有域名!
没有域名真的寸步难行……很多container默认在根目录/下工作,一旦redirect出来不带相对路径就寄了,所以还是老老实实的在内网开端口吧
考虑使用cloudflare tunnel
homepage
docker container不显示widget状态(链接)
首先,docker要能通过TCP提供docker本身的状态(比如这样)。或者通过一个container反向代理只在docker内网里提供信息
12345678910111213141516171819202122dockerproxy: image: ghcr.io/tecnativa/docker-socket-proxy:latest container_name: dockerproxy environment: - CONTAINERS=1 # Allow access to viewing containers - SERVICES=1 # Allow access to viewing services (necessary whe ...
nginx与docker
Nginx
nginx的作用
多server的负载均衡
加密:HTTPS
术语
directives(指令?): key-value
context:{…}
serve static files
12345678http { server { listen 8080; root /path/to/static/file/folder; }}events {}
然后reload
1nginx -s reload
MIME Types
在不配置的情况下,css不能成功应用到html文件中
检查Response headers - Content-Type: text/plain
1234567http { types { text/css css; # 斜杠就代表文件名中的. text/html html; } server {...}}
但是MIME Type太多 ...
理性的边界
披着科幻外衣的哲学拷问
缸中之脑描述了这样一个思想实验:把一个脑子取下来放在一个鱼缸里,用计算机模拟感知觉的输入,甚至通过某种技术为它植入虚假的记忆或情感。这个脑子能否感知自己正处在某种虚拟现实之中?
在我看来,这个问题最棘手的地方在于,Putnam实际上是为一种哲学终极疑问套上了一个科幻外壳。它在事实上拷问每一个读者:我们是谁,从哪里来,要到哪里去?缸中之脑实际上给出了一个非常悲观的答案:我们什么都不是,既不从哪里来,也不到哪里去。我们所知的世界不过是一种光影的幻象,毫无真实可言,充满了虚无主义的荒诞不经,周遭的一切都是不可知论和怀疑论构建的深渊。我们所做的一切,只是游戏引擎里徒劳无用的努力;快乐与痛苦,亦不过是程序虚构的假象;高尚或卑劣,在代码层面并无贵贱之分。缸中之脑要怀疑一切,否定一切,它甚至不在意这世界上是否真正存在这样一个神奇的鱼缸,只要在理智的头脑里种下怀疑的种子,缸中之脑就自然诞生,并再不可能在理性的世界里抹去。
从缸中之脑里引出的更深刻的问题是:假如这一切不过都是幻影,我们的存在又有什么意义?假如人生真如叔本华所言,不过是如同钟摆一样在痛苦和无聊中摆荡,我们为什么不干 ...
解决docker镜像拉取问题
docker拉取镜像的时候经常断,之前解决过一次,结果忘了,又折腾一遍。所以写个短小的笔记记录一下
首先遇到了这个问题:
1ailed to solve: nginx:alpine: failed to copy: httpReadSeeker: failed open: failed to do request: Get "https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/cb/cb8f91112b6b50ead202f48bbf81cec4b34c254417254efd94c803f7dd718045/data?verify=1730801617-FU3heZxDeHwA43OyZBn3i%2BkKwM0%3D": dialing production.cloudflare.docker.com:443 matches manual override exclude: connecting to 173.252.108.3:443: dial ...