Compare commits
No commits in common. "main" and "7.3.0-test1" have entirely different histories.
main
...
7.3.0-test
|
@ -1,13 +1,16 @@
|
||||||
Package: mattermost
|
Package: mattermost
|
||||||
Source: mattermost
|
Source: mattermost
|
||||||
|
Version: 7.3.0
|
||||||
Architecture: amd64
|
Architecture: amd64
|
||||||
Maintainer: Jeff Carr <jcarr@wit.com>
|
Maintainer: Jeff Carr <jcarr@wit.com>
|
||||||
Installed-Size: 5883
|
Installed-Size: 5883
|
||||||
Section: network
|
Section: network
|
||||||
Depends: postgresql
|
Requires: postgresql
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Homepage: https://github.com/mattermost/mattermost-server
|
Homepage: https://github.com/mattermost/mattermost-server
|
||||||
Description: open-source, self-hostable online chat service
|
Description: mattermost
|
||||||
Raw tarball from upstream.
|
Raw tarball from upstream.
|
||||||
|
.
|
||||||
Files moved to be stored in /var/mattermost
|
Files moved to be stored in /var/mattermost
|
||||||
|
.
|
||||||
This packaging is a test and may not work
|
This packaging is a test and may not work
|
|
@ -0,0 +1,22 @@
|
||||||
|
DEB=mattermost_7.3.0_amd64.deb
|
||||||
|
|
||||||
|
all: md5sum create info
|
||||||
|
|
||||||
|
info:
|
||||||
|
dpkg-deb --info ${DEB}
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf control.tar.xz data.tar.xz *.deb DEBIAN/md5sums
|
||||||
|
# rm -rf files/opt
|
||||||
|
|
||||||
|
# debian stores the calcuated md5sum checksums for each file in the package
|
||||||
|
md5sum:
|
||||||
|
cd files/ && find -type f -exec md5sum '{}' \; >../DEBIAN/md5sums
|
||||||
|
|
||||||
|
create:
|
||||||
|
cd DEBIAN && tar --ignore-failed-read -cvJf ../control.tar.xz {post,pre}{inst,rm} md5sums control
|
||||||
|
cd files && tar -cvJf ../data.tar.xz .
|
||||||
|
ar rcs ${DEB} debian-binary control.tar.xz data.tar.xz
|
||||||
|
|
||||||
|
install:
|
||||||
|
dpkg --install ${DEB}
|
|
@ -5,7 +5,7 @@ After=postgresql.service
|
||||||
BindsTo=postgresql.service
|
BindsTo=postgresql.service
|
||||||
[Service]
|
[Service]
|
||||||
Type=notify
|
Type=notify
|
||||||
ExecStart=/usr/bin/mattermost --config files/etc/mattermost/config.json
|
ExecStart=/opt/mattermost/bin/mattermost
|
||||||
TimeoutStartSec=3600
|
TimeoutStartSec=3600
|
||||||
KillMode=mixed
|
KillMode=mixed
|
||||||
Restart=always
|
Restart=always
|
Binary file not shown.
|
@ -0,0 +1,22 @@
|
||||||
|
Copyright:
|
||||||
|
|
||||||
|
Copyright 2022 Jeff Carr <jcarr@wit.org>
|
||||||
|
|
||||||
|
License:
|
||||||
|
|
||||||
|
This package is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This package is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this package; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
On Debian systems, the complete text of the GNU General
|
||||||
|
Public License version 2 can be found in `/usr/share/common-licenses/GPL-2'.
|
|
@ -1,6 +1,6 @@
|
||||||
md5sums
|
.debian/mattermost*.deb
|
||||||
/*.deb
|
.debian/control.tar.xz
|
||||||
/*.tgz
|
.debian/data.tar.xz
|
||||||
/*.tar.gz
|
.debian/DEBIAN/md5sums
|
||||||
/*.tar.xz
|
.debian/files/opt/
|
||||||
/files
|
mattermost*tar.gz
|
||||||
|
|
|
@ -1,49 +0,0 @@
|
||||||
.PHONY: control
|
|
||||||
|
|
||||||
# https://github.com/invoke-ai/InvokeAI/releases # download the current version from here
|
|
||||||
|
|
||||||
# https://github.com/invoke-ai/InvokeAI/releases/tag/v2.2.5p2
|
|
||||||
# https://github.com/invoke-ai/InvokeAI/releases/download/v2.2.5p2/InvokeAI-installer-v2.2.5p2-linux.zip
|
|
||||||
|
|
||||||
VERSION=2.2.5p2
|
|
||||||
BASENAME=invokeai
|
|
||||||
|
|
||||||
all: clean extract DEBIAN build
|
|
||||||
cd .. && wit mirrors
|
|
||||||
|
|
||||||
help:
|
|
||||||
@echo
|
|
||||||
@echo "make all # to attempt to download, extract and build the .deb package using dpkg"
|
|
||||||
@echo
|
|
||||||
|
|
||||||
update-keyring:
|
|
||||||
curl -fsSL https://bazel.build/bazel-release.pub.gpg | gpg --dearmor >bazel-archive-keyring.gpg
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -rf ../files
|
|
||||||
rm -f ../*.deb
|
|
||||||
rm -f ../*.tar.xz data.tar.xz
|
|
||||||
rm -rf DEBIAN
|
|
||||||
|
|
||||||
extract:
|
|
||||||
cp -r files ..
|
|
||||||
|
|
||||||
# makes the DEBIAN/ directory
|
|
||||||
DEBIAN:
|
|
||||||
mkdir -p DEBIAN
|
|
||||||
|
|
||||||
# make the md5sum file
|
|
||||||
cd ../files/ && find -type f -exec md5sum '{}' \; |sort -k2 >../md5sums
|
|
||||||
mv ../md5sums DEBIAN/
|
|
||||||
|
|
||||||
# make the control there
|
|
||||||
mkdir -p DEBIAN
|
|
||||||
cp control DEBIAN/
|
|
||||||
echo Version: ${VERSION} >>DEBIAN/control
|
|
||||||
|
|
||||||
cp postinst DEBIAN
|
|
||||||
|
|
||||||
build:
|
|
||||||
mv DEBIAN ../files/
|
|
||||||
cd .. && dpkg-deb --build files ${BASENAME}_${VERSION}_amd64.deb
|
|
||||||
cd .. && dpkg-deb --info ${BASENAME}_${VERSION}_amd64.deb
|
|
|
@ -1 +0,0 @@
|
||||||
10
|
|
|
@ -1,7 +0,0 @@
|
||||||
Source: invokeai
|
|
||||||
Build-Depends:
|
|
||||||
Package: invokeai
|
|
||||||
Maintainer: Jeff Carr <jcarr@wit.com>
|
|
||||||
Architecture: amd64
|
|
||||||
Depends: python3-venv
|
|
||||||
Description: install the invokeai installer
|
|
|
@ -1,45 +0,0 @@
|
||||||
name: invokeai
|
|
||||||
channels:
|
|
||||||
- pytorch
|
|
||||||
- conda-forge
|
|
||||||
- defaults
|
|
||||||
dependencies:
|
|
||||||
- albumentations=0.4.3
|
|
||||||
- cudatoolkit
|
|
||||||
- einops=0.3.0
|
|
||||||
- eventlet
|
|
||||||
- flask-socketio=5.3.0
|
|
||||||
- flask=2.1.*
|
|
||||||
- flask_cors=3.0.10
|
|
||||||
- imageio-ffmpeg=0.4.2
|
|
||||||
- imageio=2.9.0
|
|
||||||
- kornia=0.6
|
|
||||||
- numpy=1.19
|
|
||||||
- opencv=4.6.0
|
|
||||||
- pillow=8.*
|
|
||||||
- pip>=22.2.2
|
|
||||||
- pudb=2019.2
|
|
||||||
- python=3.9.*
|
|
||||||
- pytorch
|
|
||||||
- pytorch-lightning=1.7.7
|
|
||||||
- send2trash=1.8.0
|
|
||||||
- streamlit
|
|
||||||
- tokenizers>=0.11.1,!=0.11.3,<0.13
|
|
||||||
- torch-fidelity=0.3.0
|
|
||||||
- torchmetrics=0.7.0
|
|
||||||
- torchvision
|
|
||||||
- transformers=4.21.3
|
|
||||||
- pip:
|
|
||||||
- getpass_asterisk
|
|
||||||
- omegaconf==2.1.1
|
|
||||||
- picklescan
|
|
||||||
- pyreadline3
|
|
||||||
- realesrgan
|
|
||||||
- taming-transformers-rom1504
|
|
||||||
- test-tube>=0.7.5
|
|
||||||
- git+https://github.com/openai/CLIP.git@main#egg=clip
|
|
||||||
- git+https://github.com/Birch-san/k-diffusion.git@mps#egg=k_diffusion
|
|
||||||
- git+https://github.com/invoke-ai/clipseg.git@relaxed-python-requirement#egg=clipseg
|
|
||||||
- git+https://github.com/invoke-ai/GFPGAN@basicsr-1.4.2#egg=gfpgan
|
|
||||||
- git+https://github.com/invoke-ai/PyPatchMatch@0.1.5#egg=pypatchmatch
|
|
||||||
- -e .
|
|
|
@ -1,47 +0,0 @@
|
||||||
name: invokeai
|
|
||||||
channels:
|
|
||||||
- pytorch
|
|
||||||
- conda-forge
|
|
||||||
- defaults
|
|
||||||
dependencies:
|
|
||||||
- python=3.9.*
|
|
||||||
- pip=22.2.2
|
|
||||||
- numpy=1.23.3
|
|
||||||
- pip:
|
|
||||||
- --extra-index-url https://download.pytorch.org/whl/rocm5.2/
|
|
||||||
- albumentations==0.4.3
|
|
||||||
- diffusers==0.6.0
|
|
||||||
- einops==0.3.0
|
|
||||||
- eventlet
|
|
||||||
- flask==2.1.3
|
|
||||||
- flask_cors==3.0.10
|
|
||||||
- flask_socketio==5.3.0
|
|
||||||
- getpass_asterisk
|
|
||||||
- imageio-ffmpeg==0.4.2
|
|
||||||
- imageio==2.9.0
|
|
||||||
- kornia==0.6.0
|
|
||||||
- omegaconf==2.2.3
|
|
||||||
- opencv-python==4.5.5.64
|
|
||||||
- picklescan
|
|
||||||
- pillow==9.2.0
|
|
||||||
- pudb==2019.2
|
|
||||||
- pyreadline3
|
|
||||||
- pytorch-lightning==1.7.7
|
|
||||||
- realesrgan
|
|
||||||
- send2trash==1.8.0
|
|
||||||
- streamlit==1.12.0
|
|
||||||
- taming-transformers-rom1504
|
|
||||||
- test-tube>=0.7.5
|
|
||||||
- tqdm
|
|
||||||
- torch
|
|
||||||
- torch-fidelity==0.3.0
|
|
||||||
- torchaudio
|
|
||||||
- torchmetrics==0.7.0
|
|
||||||
- torchvision
|
|
||||||
- transformers==4.21.3
|
|
||||||
- git+https://github.com/openai/CLIP.git@main#egg=clip
|
|
||||||
- git+https://github.com/Birch-san/k-diffusion.git@mps#egg=k-diffusion
|
|
||||||
- git+https://github.com/invoke-ai/clipseg.git@relaxed-python-requirement#egg=clipseg
|
|
||||||
- git+https://github.com/invoke-ai/GFPGAN@basicsr-1.4.2#egg=gfpgan
|
|
||||||
- git+https://github.com/invoke-ai/PyPatchMatch@0.1.5#egg=pypatchmatch
|
|
||||||
- -e .
|
|
|
@ -1,46 +0,0 @@
|
||||||
name: invokeai
|
|
||||||
channels:
|
|
||||||
- pytorch
|
|
||||||
- conda-forge
|
|
||||||
- defaults
|
|
||||||
dependencies:
|
|
||||||
- python=3.9.*
|
|
||||||
- pip=22.2.2
|
|
||||||
- numpy=1.23.3
|
|
||||||
- torchvision=0.13.1
|
|
||||||
- torchaudio=0.12.1
|
|
||||||
- pytorch=1.12.1
|
|
||||||
- cudatoolkit=11.6
|
|
||||||
- pip:
|
|
||||||
- albumentations==0.4.3
|
|
||||||
- diffusers==0.6.0
|
|
||||||
- einops==0.3.0
|
|
||||||
- eventlet
|
|
||||||
- flask==2.1.3
|
|
||||||
- flask_cors==3.0.10
|
|
||||||
- flask_socketio==5.3.0
|
|
||||||
- getpass_asterisk
|
|
||||||
- imageio-ffmpeg==0.4.2
|
|
||||||
- imageio==2.9.0
|
|
||||||
- kornia==0.6.0
|
|
||||||
- omegaconf==2.2.3
|
|
||||||
- opencv-python==4.5.5.64
|
|
||||||
- picklescan
|
|
||||||
- pillow==9.2.0
|
|
||||||
- pudb==2019.2
|
|
||||||
- pyreadline3
|
|
||||||
- pytorch-lightning==1.7.7
|
|
||||||
- realesrgan
|
|
||||||
- send2trash==1.8.0
|
|
||||||
- streamlit==1.12.0
|
|
||||||
- taming-transformers-rom1504
|
|
||||||
- test-tube>=0.7.5
|
|
||||||
- torch-fidelity==0.3.0
|
|
||||||
- torchmetrics==0.7.0
|
|
||||||
- transformers==4.21.3
|
|
||||||
- git+https://github.com/openai/CLIP.git@main#egg=clip
|
|
||||||
- git+https://github.com/Birch-san/k-diffusion.git@mps#egg=k-diffusion
|
|
||||||
- git+https://github.com/invoke-ai/clipseg.git@relaxed-python-requirement#egg=clipseg
|
|
||||||
- git+https://github.com/invoke-ai/GFPGAN@basicsr-1.4.2#egg=gfpgan
|
|
||||||
- git+https://github.com/invoke-ai/PyPatchMatch@0.1.5#egg=pypatchmatch
|
|
||||||
- -e .
|
|
|
@ -1,65 +0,0 @@
|
||||||
name: invokeai
|
|
||||||
channels:
|
|
||||||
- pytorch
|
|
||||||
- conda-forge
|
|
||||||
- defaults
|
|
||||||
dependencies:
|
|
||||||
- python=3.10
|
|
||||||
- pip>=22.2
|
|
||||||
- pytorch=1.12
|
|
||||||
- pytorch-lightning=1.7
|
|
||||||
- torchvision=0.13
|
|
||||||
- torchmetrics=0.10
|
|
||||||
- torch-fidelity=0.3
|
|
||||||
|
|
||||||
# I suggest to keep the other deps sorted for convenience.
|
|
||||||
# To determine what the latest versions should be, run:
|
|
||||||
#
|
|
||||||
# ```shell
|
|
||||||
# sed -E 's/invokeai/invokeai-updated/;20,99s/- ([^=]+)==.+/- \1/' environment-mac.yml > environment-mac-updated.yml
|
|
||||||
# CONDA_SUBDIR=osx-arm64 conda env create -f environment-mac-updated.yml && conda list -n invokeai-updated | awk ' {print " - " $1 "==" $2;} '
|
|
||||||
# ```
|
|
||||||
|
|
||||||
- albumentations=1.2
|
|
||||||
- coloredlogs=15.0
|
|
||||||
- diffusers=0.6
|
|
||||||
- einops=0.3
|
|
||||||
- eventlet
|
|
||||||
- grpcio=1.46
|
|
||||||
- flask=2.1
|
|
||||||
- flask-socketio=5.3
|
|
||||||
- flask-cors=3.0
|
|
||||||
- humanfriendly=10.0
|
|
||||||
- imageio=2.21
|
|
||||||
- imageio-ffmpeg=0.4
|
|
||||||
- imgaug=0.4
|
|
||||||
- kornia=0.6
|
|
||||||
- mpmath=1.2
|
|
||||||
- nomkl=3
|
|
||||||
- numpy=1.23
|
|
||||||
- omegaconf=2.1
|
|
||||||
- openh264=2.3
|
|
||||||
- onnx=1.12
|
|
||||||
- onnxruntime=1.12
|
|
||||||
- pudb=2019.2
|
|
||||||
- protobuf=3.20
|
|
||||||
- py-opencv=4.6
|
|
||||||
- scipy=1.9
|
|
||||||
- streamlit=1.12
|
|
||||||
- sympy=1.10
|
|
||||||
- send2trash=1.8
|
|
||||||
- tensorboard=2.10
|
|
||||||
- transformers=4.23
|
|
||||||
- pip:
|
|
||||||
- getpass_asterisk
|
|
||||||
- picklescan
|
|
||||||
- taming-transformers-rom1504
|
|
||||||
- test-tube==0.7.5
|
|
||||||
- git+https://github.com/openai/CLIP.git@main#egg=clip
|
|
||||||
- git+https://github.com/Birch-san/k-diffusion.git@mps#egg=k-diffusion
|
|
||||||
- git+https://github.com/invoke-ai/clipseg.git@relaxed-python-requirement#egg=clipseg
|
|
||||||
- git+https://github.com/invoke-ai/GFPGAN@basicsr-1.4.2#egg=gfpgan
|
|
||||||
- git+https://github.com/invoke-ai/PyPatchMatch@0.1.5#egg=pypatchmatch
|
|
||||||
- -e .
|
|
||||||
variables:
|
|
||||||
PYTORCH_ENABLE_MPS_FALLBACK: 1
|
|
|
@ -1,46 +0,0 @@
|
||||||
name: invokeai
|
|
||||||
channels:
|
|
||||||
- pytorch
|
|
||||||
- conda-forge
|
|
||||||
- defaults
|
|
||||||
dependencies:
|
|
||||||
- python=3.10.*
|
|
||||||
- pip=22.2.2
|
|
||||||
- numpy=1.23.3
|
|
||||||
- torchvision=0.13.1
|
|
||||||
- torchaudio=0.12.1
|
|
||||||
- pytorch=1.12.1
|
|
||||||
- cudatoolkit=11.6
|
|
||||||
- pip:
|
|
||||||
- albumentations==0.4.3
|
|
||||||
- diffusers==0.6.0
|
|
||||||
- einops==0.3.0
|
|
||||||
- eventlet
|
|
||||||
- flask==2.1.3
|
|
||||||
- flask_cors==3.0.10
|
|
||||||
- flask_socketio==5.3.0
|
|
||||||
- getpass_asterisk
|
|
||||||
- imageio-ffmpeg==0.4.2
|
|
||||||
- imageio==2.9.0
|
|
||||||
- kornia==0.6.0
|
|
||||||
- omegaconf==2.2.3
|
|
||||||
- opencv-python==4.5.5.64
|
|
||||||
- picklescan
|
|
||||||
- pillow==9.2.0
|
|
||||||
- pudb==2019.2
|
|
||||||
- pyreadline3
|
|
||||||
- pytorch-lightning==1.7.7
|
|
||||||
- realesrgan
|
|
||||||
- send2trash==1.8.0
|
|
||||||
- streamlit==1.12.0
|
|
||||||
- taming-transformers-rom1504
|
|
||||||
- test-tube>=0.7.5
|
|
||||||
- torch-fidelity==0.3.0
|
|
||||||
- torchmetrics==0.7.0
|
|
||||||
- transformers==4.21.3
|
|
||||||
- git+https://github.com/openai/CLIP.git@main#egg=clip
|
|
||||||
- git+https://github.com/Birch-san/k-diffusion.git@mps#egg=k_diffusion
|
|
||||||
- git+https://github.com/invoke-ai/clipseg.git@relaxed-python-requirement#egg=clipseg
|
|
||||||
- git+https://github.com/invoke-ai/GFPGAN@basicsr-1.4.1#egg=gfpgan
|
|
||||||
- git+https://github.com/invoke-ai/PyPatchMatch@0.1.5#egg=pypatchmatch
|
|
||||||
- -e .
|
|
|
@ -1,40 +0,0 @@
|
||||||
# pip will resolve the version which matches torch
|
|
||||||
albumentations
|
|
||||||
diffusers==0.10.*
|
|
||||||
dnspython==2.2.1
|
|
||||||
einops
|
|
||||||
eventlet
|
|
||||||
facexlib
|
|
||||||
flask==2.1.3
|
|
||||||
flask_cors==3.0.10
|
|
||||||
flask_socketio==5.3.0
|
|
||||||
flaskwebgui==1.0.3
|
|
||||||
getpass_asterisk
|
|
||||||
gfpgan==1.3.8
|
|
||||||
huggingface-hub
|
|
||||||
imageio
|
|
||||||
imageio-ffmpeg
|
|
||||||
kornia
|
|
||||||
numpy==1.23.*
|
|
||||||
omegaconf
|
|
||||||
opencv-python
|
|
||||||
picklescan
|
|
||||||
pillow
|
|
||||||
pip>=22
|
|
||||||
pudb
|
|
||||||
pyreadline3
|
|
||||||
pytorch-lightning==1.7.7
|
|
||||||
realesrgan
|
|
||||||
requests==2.25.1
|
|
||||||
scikit-image>=0.19
|
|
||||||
send2trash
|
|
||||||
streamlit
|
|
||||||
taming-transformers-rom1504
|
|
||||||
test-tube>=0.7.5
|
|
||||||
torch-fidelity
|
|
||||||
torchmetrics
|
|
||||||
transformers==4.25.*
|
|
||||||
https://github.com/Birch-san/k-diffusion/archive/refs/heads/mps.zip#egg=k-diffusion
|
|
||||||
https://github.com/invoke-ai/PyPatchMatch/archive/refs/tags/0.1.5.zip#egg=pypatchmatch
|
|
||||||
https://github.com/openai/CLIP/archive/eaa22acb90a5876642d0507623e859909230a52d.zip#egg=clip
|
|
||||||
https://github.com/invoke-ai/clipseg/archive/relaxed-python-requirement.zip#egg=clipseg
|
|
|
@ -1,6 +0,0 @@
|
||||||
-r environments-and-requirements/requirements-base.txt
|
|
||||||
# Get hardware-appropriate torch/torchvision
|
|
||||||
--extra-index-url https://download.pytorch.org/whl/rocm5.1.1 --trusted-host https://download.pytorch.org
|
|
||||||
torch
|
|
||||||
torchvision
|
|
||||||
-e .
|
|
|
@ -1,3 +0,0 @@
|
||||||
--pre torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/nightly/cpu
|
|
||||||
-r environments-and-requirements/requirements-base.txt
|
|
||||||
-e .
|
|
|
@ -1,5 +0,0 @@
|
||||||
--extra-index-url https://download.pytorch.org/whl/cu116 --trusted-host https://download.pytorch.org
|
|
||||||
-r environments-and-requirements/requirements-base.txt
|
|
||||||
torch
|
|
||||||
torchvision
|
|
||||||
-e .
|
|
|
@ -1,6 +0,0 @@
|
||||||
-r environments-and-requirements/requirements-base.txt
|
|
||||||
grpcio<1.51.0
|
|
||||||
protobuf==3.19.6
|
|
||||||
torch<1.13.0
|
|
||||||
torchvision<0.14.0
|
|
||||||
-e .
|
|
|
@ -1,6 +0,0 @@
|
||||||
-r environments-and-requirements/requirements-base.txt
|
|
||||||
# Get hardware-appropriate torch/torchvision
|
|
||||||
--extra-index-url https://download.pytorch.org/whl/cu116 --trusted-host https://download.pytorch.org
|
|
||||||
torch==1.12.1
|
|
||||||
torchvision==0.13.1
|
|
||||||
-e .
|
|
|
@ -1,234 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# ensure we're in the correct folder in case user's CWD is somewhere else
|
|
||||||
scriptdir=$(dirname "$0")
|
|
||||||
cd "$scriptdir"
|
|
||||||
|
|
||||||
# This version number will be replaced by the one supplied to create_installers.sh.
|
|
||||||
# Do not change it here - change it in create_installers.sh.
|
|
||||||
INVOKEAI_VERSION="v2.2.5p2"
|
|
||||||
|
|
||||||
# make sure we are not already in a venv
|
|
||||||
# (don't need to check status)
|
|
||||||
deactivate >/dev/null 2>&1
|
|
||||||
|
|
||||||
INVOKE_AI_SRC=https://github.com/invoke-ai/InvokeAI/archive/refs/tags/${INVOKEAI_VERSION}.zip
|
|
||||||
INSTRUCTIONS=https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/
|
|
||||||
TROUBLESHOOTING=https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/#troubleshooting
|
|
||||||
MINIMUM_PYTHON_VERSION=3.9.0
|
|
||||||
|
|
||||||
set -euo pipefail
|
|
||||||
IFS=$'\n\t'
|
|
||||||
|
|
||||||
function _err_exit {
|
|
||||||
if test "$1" -ne 0
|
|
||||||
then
|
|
||||||
echo -e "Error code $1; Error caught was '$2'"
|
|
||||||
if [ "$OS_NAME" == "osx" ]; then
|
|
||||||
echo "Something went wrong while installing InvokeAI and/or its requirements."
|
|
||||||
echo "You may need to use the Xcode command line tools to proceed. See step number 3 of"
|
|
||||||
echo "https://invoke-ai.github.io/InvokeAI/INSTALL_SOURCE#walk_through for"
|
|
||||||
echo "installation instructions and then run this script again."
|
|
||||||
else
|
|
||||||
echo "Something went wrong while installing InvokeAI and/or its requirements."
|
|
||||||
echo "See https://invoke-ai.github.io/InvokeAI/INSTALL_SOURCE#troubleshooting for troubleshooting"
|
|
||||||
echo "tips, or visit https://invoke-ai.github.io/InvokeAI/#installation for alternative"
|
|
||||||
echo "installation methods"
|
|
||||||
fi
|
|
||||||
read -p "Press any key to exit..."
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function readinput() {
|
|
||||||
local CLEAN_ARGS=""
|
|
||||||
while [[ $# -gt 0 ]]; do
|
|
||||||
local i="$1"
|
|
||||||
case "$i" in
|
|
||||||
"-i")
|
|
||||||
if read -i "default" 2>/dev/null <<< "test"; then
|
|
||||||
CLEAN_ARGS="$CLEAN_ARGS -i \"$2\""
|
|
||||||
fi
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
"-p")
|
|
||||||
CLEAN_ARGS="$CLEAN_ARGS -p \"$2\""
|
|
||||||
shift
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
CLEAN_ARGS="$CLEAN_ARGS $1"
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
eval read $CLEAN_ARGS
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function version { echo "$@" | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }'; }
|
|
||||||
|
|
||||||
echo "InvokeAI simple installer..."
|
|
||||||
echo ""
|
|
||||||
echo "Some of the installation steps take a long time to run. Please be patient."
|
|
||||||
echo "If the script appears to hang for more than 10 minutes, please interrupt with control-C and retry."
|
|
||||||
read -n 1 -s -r -p "<Press any key to start the install>"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
OS_NAME=$(uname -s)
|
|
||||||
case "${OS_NAME}" in
|
|
||||||
Linux*) OS_NAME="linux";;
|
|
||||||
Darwin*) OS_NAME="osx";;
|
|
||||||
*) echo "Unknown OS: $OS_NAME! This script runs only on Linux or Mac" && exit
|
|
||||||
esac
|
|
||||||
|
|
||||||
OS_ARCH=$(uname -m)
|
|
||||||
case "${OS_ARCH}" in
|
|
||||||
x86_64*) OS_ARCH="64";;
|
|
||||||
arm64*) OS_ARCH="arm64";;
|
|
||||||
*) echo "Unknown system architecture: $OS_ARCH! This script runs only on x86_64 or arm64" && exit
|
|
||||||
esac
|
|
||||||
|
|
||||||
echo "Installing for $OS_NAME-$OS_ARCH"
|
|
||||||
# confirm that python is installed and is up to date
|
|
||||||
|
|
||||||
PYTHON=""
|
|
||||||
for candidate in python3.10 python3.9 python3 python python3.11 ; do
|
|
||||||
if ppath=`which $candidate`; then
|
|
||||||
python_version=$($ppath -V | awk '{ print $2 }')
|
|
||||||
if [ $(version $python_version) -ge $(version "$MINIMUM_PYTHON_VERSION") ]; then
|
|
||||||
PYTHON=$ppath
|
|
||||||
echo Python $python_version found at $PYTHON
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ -z "$PYTHON" ]; then
|
|
||||||
echo "A suitable Python interpreter could not be found"
|
|
||||||
echo "Please install Python 3.9 or higher before running this script. See instructions at $INSTRUCTIONS for help."
|
|
||||||
read -p "Press any key to exit"
|
|
||||||
exit -1
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
ROOTDIR=""
|
|
||||||
while [ "$ROOTDIR" == "" ]
|
|
||||||
do
|
|
||||||
echo
|
|
||||||
readinput -e -p "Select your preferred location for the 'invokeai' directory [$HOME]: " -i $HOME input
|
|
||||||
ROOTDIR=${input:=$HOME}/invokeai
|
|
||||||
|
|
||||||
# This is surprisingly hard to do in plain Bash; easier in ZSH. Just running python in subshell is easiest.
|
|
||||||
ROOTDIR=$(python -c "from pathlib import Path; print(Path('${ROOTDIR}').expanduser().resolve())")
|
|
||||||
|
|
||||||
read -e -p "InvokeAI will be installed into $ROOTDIR. OK? [y]: " input
|
|
||||||
RESPONSE=${input:='y'}
|
|
||||||
if [ "$RESPONSE" == 'y' ]; then
|
|
||||||
if [ -e "$ROOTDIR" ]; then
|
|
||||||
echo
|
|
||||||
read -e -p "Directory "$ROOTDIR" already exists. Do you want to resume an interrupted install? [y]: " input
|
|
||||||
RESPONSE=${input:='y'}
|
|
||||||
if [ "$RESPONSE" != 'y' ]; then
|
|
||||||
ROOTDIR=""
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
mkdir -p "$ROOTDIR"
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "Could not create "$ROOTDIR". Try again with a different install location."
|
|
||||||
ROOTDIR=""
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
ROOTDIR=""
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
#--------------------------------------------------------------------------------
|
|
||||||
echo
|
|
||||||
echo "** Creating Virtual Environment for InvokeAI **"
|
|
||||||
|
|
||||||
$PYTHON -mvenv "$ROOTDIR"/.venv
|
|
||||||
_err_exit $? "Python failed to create virtual environment "$ROOTDIR"/.venv. Please see $TROUBLESHOOTING for help."
|
|
||||||
|
|
||||||
#--------------------------------------------------------------------------------
|
|
||||||
echo
|
|
||||||
echo "** Activating Virtual Environment for InvokeAI **"
|
|
||||||
|
|
||||||
source "$ROOTDIR"/.venv/bin/activate
|
|
||||||
_err_exit $? "Failed to activate virtual evironment "$ROOTDIR"/.venv. Please see $TROUBLESHOOTING for help."
|
|
||||||
|
|
||||||
PYTHON="$ROOTDIR"/.venv/bin/python
|
|
||||||
$PYTHON -mensurepip --upgrade
|
|
||||||
$PYTHON -mpip install --upgrade pip
|
|
||||||
|
|
||||||
#--------------------------------------------------------------------------------
|
|
||||||
echo
|
|
||||||
echo "*** Installing InvokeAI Dependencies ***"
|
|
||||||
|
|
||||||
if [ "$OS_NAME" == "osx" ]; then
|
|
||||||
echo "macOS detected. Installing MPS and CPU support."
|
|
||||||
egrep -v '^-e .' environments-and-requirements/requirements-mac-mps-cpu.txt >requirements.txt
|
|
||||||
else
|
|
||||||
if (lsmod | grep amdgpu) &>/dev/null ; then
|
|
||||||
readinput -e -p "Linux system with AMD GPU driver detected. Install ROCm AMD accelerated support? (Otherwise, CUDA support will be installed) [n]: " input
|
|
||||||
RESPONSE=${input:='n'}
|
|
||||||
if [ "$RESPONSE" != "n" ]; then
|
|
||||||
echo "Installing ROCm (AMD) support"
|
|
||||||
egrep -v '^-e .' environments-and-requirements/requirements-lin-amd.txt >requirements.txt
|
|
||||||
else
|
|
||||||
echo "Installing CUDA support"
|
|
||||||
egrep -v '^-e .' environments-and-requirements/requirements-lin-cuda.txt >requirements.txt
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "Linux system detected. Installing CUDA and CPU support."
|
|
||||||
egrep -v '^-e .' environments-and-requirements/requirements-lin-cuda.txt >requirements.txt
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
$PYTHON -mpip install --prefer-binary -r requirements.txt
|
|
||||||
_err_exit $? "Failed to install InvokeAI's dependencies."
|
|
||||||
|
|
||||||
#--------------------------------------------------------------------------------
|
|
||||||
echo
|
|
||||||
echo "*** Installing InvokeAI Modules and Executables ***"
|
|
||||||
$PYTHON -mpip install $INVOKE_AI_SRC
|
|
||||||
_err_exit $? "Installation of InvokeAI failed."
|
|
||||||
|
|
||||||
#--------------------------------------------------------------------------------
|
|
||||||
echo " *** Setting Up Root Directory "$ROOTDIR" *** "
|
|
||||||
cp -pr templates/rootdir/* "$ROOTDIR"/
|
|
||||||
cp templates/invoke.sh.in "$ROOTDIR"/invoke.sh
|
|
||||||
chmod a+rx "$ROOTDIR"/invoke.sh
|
|
||||||
cp templates/update.sh.in "$ROOTDIR"/update.sh
|
|
||||||
chmod a+rx "$ROOTDIR"/update.sh
|
|
||||||
|
|
||||||
# This allows the updater to work!
|
|
||||||
cp -pr environments-and-requirements requirements.txt "$ROOTDIR/"
|
|
||||||
|
|
||||||
#--------------------------------------------------------------------------------
|
|
||||||
echo
|
|
||||||
echo "*** Confguring InvokeAI ***"
|
|
||||||
pushd "$ROOTDIR" >/dev/null
|
|
||||||
$PYTHON ./.venv/bin/configure_invokeai.py --root="$ROOTDIR"
|
|
||||||
_err_exit $? "Initial configuration failed. Please see above error messages and $TROUBLESHOOTING for help."
|
|
||||||
|
|
||||||
#--------------------------------------------------------------------------------
|
|
||||||
popd
|
|
||||||
cp templates/invoke.sh.in "$ROOTDIR"/invoke.sh
|
|
||||||
chmod a+rx "$ROOTDIR"/invoke.sh
|
|
||||||
|
|
||||||
cp templates/update.sh.in "$ROOTDIR"/update.sh
|
|
||||||
chmod a+rx "$ROOTDIR"/update.sh
|
|
||||||
|
|
||||||
echo "You may now run InvokeAI by entering the directory $ROOTDIR and running invoke.sh:"
|
|
||||||
echo
|
|
||||||
echo " ${ROOTDIR}/invoke.sh"
|
|
||||||
echo
|
|
||||||
|
|
||||||
read -e -p "Run InvokeAI now? [y]:" input
|
|
||||||
RESPONSE=${input:='y'}
|
|
||||||
if [ "$RESPONSE" == 'y' ]; then
|
|
||||||
exec ${ROOTDIR}/invoke.sh
|
|
||||||
fi
|
|
|
@ -1,52 +0,0 @@
|
||||||
InvokeAI
|
|
||||||
|
|
||||||
Project homepage: https://github.com/invoke-ai/InvokeAI
|
|
||||||
|
|
||||||
Preparations:
|
|
||||||
|
|
||||||
You will need to install Python 3.9 or higher for this installer
|
|
||||||
to work. Instructions are given here:
|
|
||||||
https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/
|
|
||||||
|
|
||||||
Before you start the installer, please open up your system's command
|
|
||||||
line window (Terminal or Command) and type the commands:
|
|
||||||
|
|
||||||
python --version
|
|
||||||
|
|
||||||
If all is well, it will print "Python 3.X.X", where the version number
|
|
||||||
is at least 3.9.1
|
|
||||||
|
|
||||||
If this works, check the version of the Python package manager, pip:
|
|
||||||
|
|
||||||
pip --version
|
|
||||||
|
|
||||||
You should get a message that indicates that the pip package
|
|
||||||
installer was derived from Python 3.9 or 3.10. For example:
|
|
||||||
"pip 22.3.1 from /usr/bin/pip (python 3.9)"
|
|
||||||
|
|
||||||
Long Paths on Windows:
|
|
||||||
|
|
||||||
If you are on Windows, you will need to enable Windows Long Paths to
|
|
||||||
run InvokeAI successfully. If you're not sure what this is, you
|
|
||||||
almost certainly need to do this.
|
|
||||||
|
|
||||||
Simply double-click the "WinLongPathsEnabled.reg" file located in
|
|
||||||
this directory, and approve the Windows warnings. Note that you will
|
|
||||||
need to have admin privileges in order to do this.
|
|
||||||
|
|
||||||
Launching the installer:
|
|
||||||
|
|
||||||
Windows: double-click the 'install.bat' file (while keeping it inside
|
|
||||||
the InvokeAI-Installer folder).
|
|
||||||
|
|
||||||
Linux and Mac: Please open the terminal application and run
|
|
||||||
'./install.sh' (while keeping it inside the InvokeAI-Installer
|
|
||||||
folder).
|
|
||||||
|
|
||||||
The installer will create a directory named "invokeai" in the folder
|
|
||||||
of your choice. This directory contains everything you need to run
|
|
||||||
invokeai. Once InvokeAI is up and running, you may delete the
|
|
||||||
InvokeAI-Installer folder at your convenience.
|
|
||||||
|
|
||||||
For more information, please see
|
|
||||||
https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/
|
|
|
@ -1,5 +0,0 @@
|
||||||
-r environments-and-requirements/requirements-base.txt
|
|
||||||
# Get hardware-appropriate torch/torchvision
|
|
||||||
--extra-index-url https://download.pytorch.org/whl/rocm5.1.1 --trusted-host https://download.pytorch.org
|
|
||||||
torch
|
|
||||||
torchvision
|
|
|
@ -1,37 +0,0 @@
|
||||||
@echo off
|
|
||||||
|
|
||||||
PUSHD "%~dp0"
|
|
||||||
setlocal
|
|
||||||
|
|
||||||
call .venv\Scripts\activate.bat
|
|
||||||
set INVOKEAI_ROOT=.
|
|
||||||
|
|
||||||
echo Do you want to generate images using the
|
|
||||||
echo 1. command-line
|
|
||||||
echo 2. browser-based UI
|
|
||||||
echo 3. open the developer console
|
|
||||||
set /P restore="Please enter 1, 2 or 3: "
|
|
||||||
IF /I "%restore%" == "1" (
|
|
||||||
echo Starting the InvokeAI command-line..
|
|
||||||
python .venv\Scripts\invoke.py %*
|
|
||||||
) ELSE IF /I "%restore%" == "2" (
|
|
||||||
echo Starting the InvokeAI browser-based UI..
|
|
||||||
python .venv\Scripts\invoke.py --web %*
|
|
||||||
) ELSE IF /I "%restore%" == "3" (
|
|
||||||
echo Developer Console
|
|
||||||
echo Python command is:
|
|
||||||
where python
|
|
||||||
echo Python version is:
|
|
||||||
python --version
|
|
||||||
echo *************************
|
|
||||||
echo You are now in the system shell, with the local InvokeAI Python virtual environment activated,
|
|
||||||
echo so that you can troubleshoot this InvokeAI installation as necessary.
|
|
||||||
echo *************************
|
|
||||||
echo *** Type `exit` to quit this shell and deactivate the Python virtual environment ***
|
|
||||||
call cmd /k
|
|
||||||
) ELSE (
|
|
||||||
echo Invalid selection
|
|
||||||
pause
|
|
||||||
exit /b
|
|
||||||
)
|
|
||||||
endlocal
|
|
|
@ -1,34 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
# ensure we're in the correct folder in case user's CWD is somewhere else
|
|
||||||
scriptdir=$(dirname "$0")
|
|
||||||
cd "$scriptdir"
|
|
||||||
|
|
||||||
. .venv/bin/activate
|
|
||||||
|
|
||||||
export INVOKEAI_ROOT="$scriptdir"
|
|
||||||
|
|
||||||
# set required env var for torch on mac MPS
|
|
||||||
if [ "$(uname -s)" == "Darwin" ]; then
|
|
||||||
export PYTORCH_ENABLE_MPS_FALLBACK=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$0" != "bash" ]; then
|
|
||||||
echo "Do you want to generate images using the"
|
|
||||||
echo "1. command-line"
|
|
||||||
echo "2. browser-based UI"
|
|
||||||
echo "3. open the developer console"
|
|
||||||
read -p "Please enter 1, 2, or 3: " yn
|
|
||||||
case $yn in
|
|
||||||
1 ) printf "\nStarting the InvokeAI command-line..\n"; .venv/bin/python .venv/bin/invoke.py $*;;
|
|
||||||
2 ) printf "\nStarting the InvokeAI browser-based UI..\n"; .venv/bin/python .venv/bin/invoke.py --web $*;;
|
|
||||||
3 ) printf "\nDeveloper Console:\n"; file_name=$(basename "${BASH_SOURCE[0]}"); bash --init-file "$file_name";;
|
|
||||||
* ) echo "Invalid selection"; exit;;
|
|
||||||
esac
|
|
||||||
else # in developer console
|
|
||||||
python --version
|
|
||||||
echo "Press ^D to exit"
|
|
||||||
export PS1="(InvokeAI) \u@\h \w> "
|
|
||||||
fi
|
|
|
@ -1,80 +0,0 @@
|
||||||
stable-diffusion-1.5:
|
|
||||||
description: The newest Stable Diffusion version 1.5 weight file (4.27 GB)
|
|
||||||
repo_id: runwayml/stable-diffusion-v1-5
|
|
||||||
config: v1-inference.yaml
|
|
||||||
file: v1-5-pruned-emaonly.ckpt
|
|
||||||
recommended: true
|
|
||||||
width: 512
|
|
||||||
height: 512
|
|
||||||
inpainting-1.5:
|
|
||||||
description: RunwayML SD 1.5 model optimized for inpainting (4.27 GB)
|
|
||||||
repo_id: runwayml/stable-diffusion-inpainting
|
|
||||||
config: v1-inpainting-inference.yaml
|
|
||||||
file: sd-v1-5-inpainting.ckpt
|
|
||||||
recommended: True
|
|
||||||
width: 512
|
|
||||||
height: 512
|
|
||||||
ft-mse-improved-autoencoder-840000:
|
|
||||||
description: StabilityAI improved autoencoder fine-tuned for human faces (recommended; 335 MB)
|
|
||||||
repo_id: stabilityai/sd-vae-ft-mse-original
|
|
||||||
config: VAE/default
|
|
||||||
file: vae-ft-mse-840000-ema-pruned.ckpt
|
|
||||||
recommended: True
|
|
||||||
width: 512
|
|
||||||
height: 512
|
|
||||||
stable-diffusion-1.4:
|
|
||||||
description: The original Stable Diffusion version 1.4 weight file (4.27 GB)
|
|
||||||
repo_id: CompVis/stable-diffusion-v-1-4-original
|
|
||||||
config: v1-inference.yaml
|
|
||||||
file: sd-v1-4.ckpt
|
|
||||||
recommended: False
|
|
||||||
width: 512
|
|
||||||
height: 512
|
|
||||||
waifu-diffusion-1.3:
|
|
||||||
description: Stable Diffusion 1.4 fine tuned on anime-styled images (4.27 GB)
|
|
||||||
repo_id: hakurei/waifu-diffusion-v1-3
|
|
||||||
config: v1-inference.yaml
|
|
||||||
file: model-epoch09-float32.ckpt
|
|
||||||
recommended: False
|
|
||||||
width: 512
|
|
||||||
height: 512
|
|
||||||
trinart-2.0:
|
|
||||||
description: An SD model finetuned with ~40,000 assorted high resolution manga/anime-style pictures (2.13 GB)
|
|
||||||
repo_id: naclbit/trinart_stable_diffusion_v2
|
|
||||||
config: v1-inference.yaml
|
|
||||||
file: trinart2_step95000.ckpt
|
|
||||||
recommended: False
|
|
||||||
width: 512
|
|
||||||
height: 512
|
|
||||||
trinart_characters-1.0:
|
|
||||||
description: An SD model finetuned with 19.2M anime/manga style images (2.13 GB)
|
|
||||||
repo_id: naclbit/trinart_characters_19.2m_stable_diffusion_v1
|
|
||||||
config: v1-inference.yaml
|
|
||||||
file: trinart_characters_it4_v1.ckpt
|
|
||||||
recommended: False
|
|
||||||
width: 512
|
|
||||||
height: 512
|
|
||||||
trinart_vae:
|
|
||||||
description: Custom autoencoder for trinart_characters
|
|
||||||
repo_id: naclbit/trinart_characters_19.2m_stable_diffusion_v1
|
|
||||||
config: VAE/trinart
|
|
||||||
file: autoencoder_fix_kl-f8-trinart_characters.ckpt
|
|
||||||
recommended: False
|
|
||||||
width: 512
|
|
||||||
height: 512
|
|
||||||
papercut-1.0:
|
|
||||||
description: SD 1.5 fine-tuned for papercut art (use "PaperCut" in your prompts) (2.13 GB)
|
|
||||||
repo_id: Fictiverse/Stable_Diffusion_PaperCut_Model
|
|
||||||
config: v1-inference.yaml
|
|
||||||
file: PaperCut_v1.ckpt
|
|
||||||
recommended: False
|
|
||||||
width: 512
|
|
||||||
height: 512
|
|
||||||
voxel_art-1.0:
|
|
||||||
description: Stable Diffusion trained on voxel art (use "VoxelArt" in your prompts) (4.27 GB)
|
|
||||||
repo_id: Fictiverse/Stable_Diffusion_VoxelArt_Model
|
|
||||||
config: v1-inference.yaml
|
|
||||||
file: VoxelArt_v1.ckpt
|
|
||||||
recommended: False
|
|
||||||
width: 512
|
|
||||||
height: 512
|
|
|
@ -1,29 +0,0 @@
|
||||||
# This file describes the alternative machine learning models
|
|
||||||
# available to InvokeAI script.
|
|
||||||
#
|
|
||||||
# To add a new model, follow the examples below. Each
|
|
||||||
# model requires a model config file, a weights file,
|
|
||||||
# and the width and height of the images it
|
|
||||||
# was trained on.
|
|
||||||
stable-diffusion-1.5:
|
|
||||||
description: The newest Stable Diffusion version 1.5 weight file (4.27 GB)
|
|
||||||
weights: models/ldm/stable-diffusion-v1/v1-5-pruned-emaonly.ckpt
|
|
||||||
config: configs/stable-diffusion/v1-inference.yaml
|
|
||||||
width: 512
|
|
||||||
height: 512
|
|
||||||
vae: ./models/ldm/stable-diffusion-v1/vae-ft-mse-840000-ema-pruned.ckpt
|
|
||||||
default: true
|
|
||||||
stable-diffusion-1.4:
|
|
||||||
description: Stable Diffusion inference model version 1.4
|
|
||||||
config: configs/stable-diffusion/v1-inference.yaml
|
|
||||||
weights: models/ldm/stable-diffusion-v1/sd-v1-4.ckpt
|
|
||||||
vae: models/ldm/stable-diffusion-v1/vae-ft-mse-840000-ema-pruned.ckpt
|
|
||||||
width: 512
|
|
||||||
height: 512
|
|
||||||
inpainting-1.5:
|
|
||||||
weights: models/ldm/stable-diffusion-v1/sd-v1-5-inpainting.ckpt
|
|
||||||
config: configs/stable-diffusion/v1-inpainting-inference.yaml
|
|
||||||
vae: models/ldm/stable-diffusion-v1/vae-ft-mse-840000-ema-pruned.ckpt
|
|
||||||
description: RunwayML SD 1.5 model optimized for inpainting
|
|
||||||
width: 512
|
|
||||||
height: 512
|
|
|
@ -1,803 +0,0 @@
|
||||||
sd-concepts-library/001glitch-core
|
|
||||||
sd-concepts-library/2814-roth
|
|
||||||
sd-concepts-library/3d-female-cyborgs
|
|
||||||
sd-concepts-library/4tnght
|
|
||||||
sd-concepts-library/80s-anime-ai
|
|
||||||
sd-concepts-library/80s-anime-ai-being
|
|
||||||
sd-concepts-library/852style-girl
|
|
||||||
sd-concepts-library/8bit
|
|
||||||
sd-concepts-library/8sconception
|
|
||||||
sd-concepts-library/Aflac-duck
|
|
||||||
sd-concepts-library/Akitsuki
|
|
||||||
sd-concepts-library/Atako
|
|
||||||
sd-concepts-library/Exodus-Styling
|
|
||||||
sd-concepts-library/RINGAO
|
|
||||||
sd-concepts-library/a-female-hero-from-the-legend-of-mir
|
|
||||||
sd-concepts-library/a-hat-kid
|
|
||||||
sd-concepts-library/a-tale-of-two-empires
|
|
||||||
sd-concepts-library/aadhav-face
|
|
||||||
sd-concepts-library/aavegotchi
|
|
||||||
sd-concepts-library/abby-face
|
|
||||||
sd-concepts-library/abstract-concepts
|
|
||||||
sd-concepts-library/accurate-angel
|
|
||||||
sd-concepts-library/agm-style-nao
|
|
||||||
sd-concepts-library/aj-fosik
|
|
||||||
sd-concepts-library/alberto-mielgo
|
|
||||||
sd-concepts-library/alex-portugal
|
|
||||||
sd-concepts-library/alex-thumbnail-object-2000-steps
|
|
||||||
sd-concepts-library/aleyna-tilki
|
|
||||||
sd-concepts-library/alf
|
|
||||||
sd-concepts-library/alicebeta
|
|
||||||
sd-concepts-library/alien-avatar
|
|
||||||
sd-concepts-library/alisa
|
|
||||||
sd-concepts-library/all-rings-albuns
|
|
||||||
sd-concepts-library/altvent
|
|
||||||
sd-concepts-library/altyn-helmet
|
|
||||||
sd-concepts-library/amine
|
|
||||||
sd-concepts-library/amogus
|
|
||||||
sd-concepts-library/anders-zorn
|
|
||||||
sd-concepts-library/angus-mcbride-style
|
|
||||||
sd-concepts-library/animalve3-1500seq
|
|
||||||
sd-concepts-library/anime-background-style
|
|
||||||
sd-concepts-library/anime-background-style-v2
|
|
||||||
sd-concepts-library/anime-boy
|
|
||||||
sd-concepts-library/anime-girl
|
|
||||||
sd-concepts-library/anyXtronXredshift
|
|
||||||
sd-concepts-library/anya-forger
|
|
||||||
sd-concepts-library/apex-wingman
|
|
||||||
sd-concepts-library/apulian-rooster-v0-1
|
|
||||||
sd-concepts-library/arcane-face
|
|
||||||
sd-concepts-library/arcane-style-jv
|
|
||||||
sd-concepts-library/arcimboldo-style
|
|
||||||
sd-concepts-library/armando-reveron-style
|
|
||||||
sd-concepts-library/armor-concept
|
|
||||||
sd-concepts-library/arq-render
|
|
||||||
sd-concepts-library/art-brut
|
|
||||||
sd-concepts-library/arthur1
|
|
||||||
sd-concepts-library/artist-yukiko-kanagai
|
|
||||||
sd-concepts-library/arwijn
|
|
||||||
sd-concepts-library/ashiok
|
|
||||||
sd-concepts-library/at-wolf-boy-object
|
|
||||||
sd-concepts-library/atm-ant
|
|
||||||
sd-concepts-library/atm-ant-2
|
|
||||||
sd-concepts-library/axe-tattoo
|
|
||||||
sd-concepts-library/ayush-spider-spr
|
|
||||||
sd-concepts-library/azura-from-vibrant-venture
|
|
||||||
sd-concepts-library/ba-shiroko
|
|
||||||
sd-concepts-library/babau
|
|
||||||
sd-concepts-library/babs-bunny
|
|
||||||
sd-concepts-library/babushork
|
|
||||||
sd-concepts-library/backrooms
|
|
||||||
sd-concepts-library/bad_Hub_Hugh
|
|
||||||
sd-concepts-library/bada-club
|
|
||||||
sd-concepts-library/baldi
|
|
||||||
sd-concepts-library/baluchitherian
|
|
||||||
sd-concepts-library/bamse
|
|
||||||
sd-concepts-library/bamse-og-kylling
|
|
||||||
sd-concepts-library/bee
|
|
||||||
sd-concepts-library/beholder
|
|
||||||
sd-concepts-library/beldam
|
|
||||||
sd-concepts-library/belen
|
|
||||||
sd-concepts-library/bella-goth
|
|
||||||
sd-concepts-library/belle-delphine
|
|
||||||
sd-concepts-library/bert-muppet
|
|
||||||
sd-concepts-library/better-collage3
|
|
||||||
sd-concepts-library/between2-mt-fade
|
|
||||||
sd-concepts-library/birb-style
|
|
||||||
sd-concepts-library/black-and-white-design
|
|
||||||
sd-concepts-library/black-waifu
|
|
||||||
sd-concepts-library/bloo
|
|
||||||
sd-concepts-library/blue-haired-boy
|
|
||||||
sd-concepts-library/blue-zombie
|
|
||||||
sd-concepts-library/blue-zombiee
|
|
||||||
sd-concepts-library/bluebey
|
|
||||||
sd-concepts-library/bluebey-2
|
|
||||||
sd-concepts-library/bobs-burgers
|
|
||||||
sd-concepts-library/boissonnard
|
|
||||||
sd-concepts-library/bonzi-monkey
|
|
||||||
sd-concepts-library/borderlands
|
|
||||||
sd-concepts-library/bored-ape-textual-inversion
|
|
||||||
sd-concepts-library/boris-anderson
|
|
||||||
sd-concepts-library/bozo-22
|
|
||||||
sd-concepts-library/breakcore
|
|
||||||
sd-concepts-library/brittney-williams-art
|
|
||||||
sd-concepts-library/bruma
|
|
||||||
sd-concepts-library/brunnya
|
|
||||||
sd-concepts-library/buddha-statue
|
|
||||||
sd-concepts-library/bullvbear
|
|
||||||
sd-concepts-library/button-eyes
|
|
||||||
sd-concepts-library/canadian-goose
|
|
||||||
sd-concepts-library/canary-cap
|
|
||||||
sd-concepts-library/cancer_style
|
|
||||||
sd-concepts-library/captain-haddock
|
|
||||||
sd-concepts-library/captainkirb
|
|
||||||
sd-concepts-library/car-toy-rk
|
|
||||||
sd-concepts-library/carasibana
|
|
||||||
sd-concepts-library/carlitos-el-mago
|
|
||||||
sd-concepts-library/carrascharacter
|
|
||||||
sd-concepts-library/cartoona-animals
|
|
||||||
sd-concepts-library/cat-toy
|
|
||||||
sd-concepts-library/centaur
|
|
||||||
sd-concepts-library/cgdonny1
|
|
||||||
sd-concepts-library/cham
|
|
||||||
sd-concepts-library/chandra-nalaar
|
|
||||||
sd-concepts-library/char-con
|
|
||||||
sd-concepts-library/character-pingu
|
|
||||||
sd-concepts-library/cheburashka
|
|
||||||
sd-concepts-library/chen-1
|
|
||||||
sd-concepts-library/child-zombie
|
|
||||||
sd-concepts-library/chillpill
|
|
||||||
sd-concepts-library/chonkfrog
|
|
||||||
sd-concepts-library/chop
|
|
||||||
sd-concepts-library/christo-person
|
|
||||||
sd-concepts-library/chuck-walton
|
|
||||||
sd-concepts-library/chucky
|
|
||||||
sd-concepts-library/chungus-poodl-pet
|
|
||||||
sd-concepts-library/cindlop
|
|
||||||
sd-concepts-library/collage-cutouts
|
|
||||||
sd-concepts-library/collage14
|
|
||||||
sd-concepts-library/collage3
|
|
||||||
sd-concepts-library/collage3-hubcity
|
|
||||||
sd-concepts-library/cologne
|
|
||||||
sd-concepts-library/color-page
|
|
||||||
sd-concepts-library/colossus
|
|
||||||
sd-concepts-library/command-and-conquer-remastered-cameos
|
|
||||||
sd-concepts-library/concept-art
|
|
||||||
sd-concepts-library/conner-fawcett-style
|
|
||||||
sd-concepts-library/conway-pirate
|
|
||||||
sd-concepts-library/coop-himmelblau
|
|
||||||
sd-concepts-library/coraline
|
|
||||||
sd-concepts-library/cornell-box
|
|
||||||
sd-concepts-library/cortana
|
|
||||||
sd-concepts-library/covid-19-rapid-test
|
|
||||||
sd-concepts-library/cow-uwu
|
|
||||||
sd-concepts-library/cowboy
|
|
||||||
sd-concepts-library/crazy-1
|
|
||||||
sd-concepts-library/crazy-2
|
|
||||||
sd-concepts-library/crb-portraits
|
|
||||||
sd-concepts-library/crb-surrealz
|
|
||||||
sd-concepts-library/crbart
|
|
||||||
sd-concepts-library/crested-gecko
|
|
||||||
sd-concepts-library/crinos-form-garou
|
|
||||||
sd-concepts-library/cry-baby-style
|
|
||||||
sd-concepts-library/crybaby-style-2-0
|
|
||||||
sd-concepts-library/csgo-awp-object
|
|
||||||
sd-concepts-library/csgo-awp-texture-map
|
|
||||||
sd-concepts-library/cubex
|
|
||||||
sd-concepts-library/cumbia-peruana
|
|
||||||
sd-concepts-library/cute-bear
|
|
||||||
sd-concepts-library/cute-cat
|
|
||||||
sd-concepts-library/cute-game-style
|
|
||||||
sd-concepts-library/cyberpunk-lucy
|
|
||||||
sd-concepts-library/dabotap
|
|
||||||
sd-concepts-library/dan-mumford
|
|
||||||
sd-concepts-library/dan-seagrave-art-style
|
|
||||||
sd-concepts-library/dark-penguin-pinguinanimations
|
|
||||||
sd-concepts-library/darkpenguinanimatronic
|
|
||||||
sd-concepts-library/darkplane
|
|
||||||
sd-concepts-library/david-firth-artstyle
|
|
||||||
sd-concepts-library/david-martinez-cyberpunk
|
|
||||||
sd-concepts-library/david-martinez-edgerunners
|
|
||||||
sd-concepts-library/david-moreno-architecture
|
|
||||||
sd-concepts-library/daycare-attendant-sun-fnaf
|
|
||||||
sd-concepts-library/ddattender
|
|
||||||
sd-concepts-library/degods
|
|
||||||
sd-concepts-library/degodsheavy
|
|
||||||
sd-concepts-library/depthmap
|
|
||||||
sd-concepts-library/depthmap-style
|
|
||||||
sd-concepts-library/design
|
|
||||||
sd-concepts-library/detectivedinosaur1
|
|
||||||
sd-concepts-library/diaosu-toy
|
|
||||||
sd-concepts-library/dicoo
|
|
||||||
sd-concepts-library/dicoo2
|
|
||||||
sd-concepts-library/dishonored-portrait-styles
|
|
||||||
sd-concepts-library/disquieting-muses
|
|
||||||
sd-concepts-library/ditko
|
|
||||||
sd-concepts-library/dlooak
|
|
||||||
sd-concepts-library/doc
|
|
||||||
sd-concepts-library/doener-red-line-art
|
|
||||||
sd-concepts-library/dog
|
|
||||||
sd-concepts-library/dog-django
|
|
||||||
sd-concepts-library/doge-pound
|
|
||||||
sd-concepts-library/dong-ho
|
|
||||||
sd-concepts-library/dong-ho2
|
|
||||||
sd-concepts-library/doose-s-realistic-art-style
|
|
||||||
sd-concepts-library/dq10-anrushia
|
|
||||||
sd-concepts-library/dr-livesey
|
|
||||||
sd-concepts-library/dr-strange
|
|
||||||
sd-concepts-library/dragonborn
|
|
||||||
sd-concepts-library/dreamcore
|
|
||||||
sd-concepts-library/dreamy-painting
|
|
||||||
sd-concepts-library/drive-scorpion-jacket
|
|
||||||
sd-concepts-library/dsmuses
|
|
||||||
sd-concepts-library/dtv-pkmn
|
|
||||||
sd-concepts-library/dullboy-caricature
|
|
||||||
sd-concepts-library/duranduran
|
|
||||||
sd-concepts-library/durer-style
|
|
||||||
sd-concepts-library/dyoudim-style
|
|
||||||
sd-concepts-library/early-mishima-kurone
|
|
||||||
sd-concepts-library/eastward
|
|
||||||
sd-concepts-library/eddie
|
|
||||||
sd-concepts-library/edgerunners-style
|
|
||||||
sd-concepts-library/edgerunners-style-v2
|
|
||||||
sd-concepts-library/el-salvador-style-style
|
|
||||||
sd-concepts-library/elegant-flower
|
|
||||||
sd-concepts-library/elspeth-tirel
|
|
||||||
sd-concepts-library/eru-chitanda-casual
|
|
||||||
sd-concepts-library/erwin-olaf-style
|
|
||||||
sd-concepts-library/ettblackteapot
|
|
||||||
sd-concepts-library/explosions-cat
|
|
||||||
sd-concepts-library/eye-of-agamotto
|
|
||||||
sd-concepts-library/f-22
|
|
||||||
sd-concepts-library/facadeplace
|
|
||||||
sd-concepts-library/fairy-tale-painting-style
|
|
||||||
sd-concepts-library/fairytale
|
|
||||||
sd-concepts-library/fang-yuan-001
|
|
||||||
sd-concepts-library/faraon-love-shady
|
|
||||||
sd-concepts-library/fasina
|
|
||||||
sd-concepts-library/felps
|
|
||||||
sd-concepts-library/female-kpop-singer
|
|
||||||
sd-concepts-library/fergal-cat
|
|
||||||
sd-concepts-library/filename-2
|
|
||||||
sd-concepts-library/fileteado-porteno
|
|
||||||
sd-concepts-library/final-fantasy-logo
|
|
||||||
sd-concepts-library/fireworks-over-water
|
|
||||||
sd-concepts-library/fish
|
|
||||||
sd-concepts-library/flag-ussr
|
|
||||||
sd-concepts-library/flatic
|
|
||||||
sd-concepts-library/floral
|
|
||||||
sd-concepts-library/fluid-acrylic-jellyfish-creatures-style-of-carl-ingram-art
|
|
||||||
sd-concepts-library/fnf-boyfriend
|
|
||||||
sd-concepts-library/fold-structure
|
|
||||||
sd-concepts-library/fox-purple
|
|
||||||
sd-concepts-library/fractal
|
|
||||||
sd-concepts-library/fractal-flame
|
|
||||||
sd-concepts-library/fractal-temple-style
|
|
||||||
sd-concepts-library/frank-frazetta
|
|
||||||
sd-concepts-library/franz-unterberger
|
|
||||||
sd-concepts-library/freddy-fazbear
|
|
||||||
sd-concepts-library/freefonix-style
|
|
||||||
sd-concepts-library/furrpopasthetic
|
|
||||||
sd-concepts-library/fursona
|
|
||||||
sd-concepts-library/fzk
|
|
||||||
sd-concepts-library/galaxy-explorer
|
|
||||||
sd-concepts-library/ganyu-genshin-impact
|
|
||||||
sd-concepts-library/garcon-the-cat
|
|
||||||
sd-concepts-library/garfield-pizza-plush
|
|
||||||
sd-concepts-library/garfield-pizza-plush-v2
|
|
||||||
sd-concepts-library/gba-fe-class-cards
|
|
||||||
sd-concepts-library/gba-pokemon-sprites
|
|
||||||
sd-concepts-library/geggin
|
|
||||||
sd-concepts-library/ggplot2
|
|
||||||
sd-concepts-library/ghost-style
|
|
||||||
sd-concepts-library/ghostproject-men
|
|
||||||
sd-concepts-library/gibasachan-v0
|
|
||||||
sd-concepts-library/gim
|
|
||||||
sd-concepts-library/gio
|
|
||||||
sd-concepts-library/giygas
|
|
||||||
sd-concepts-library/glass-pipe
|
|
||||||
sd-concepts-library/glass-prism-cube
|
|
||||||
sd-concepts-library/glow-forest
|
|
||||||
sd-concepts-library/goku
|
|
||||||
sd-concepts-library/gram-tops
|
|
||||||
sd-concepts-library/green-blue-shanshui
|
|
||||||
sd-concepts-library/green-tent
|
|
||||||
sd-concepts-library/grifter
|
|
||||||
sd-concepts-library/grisstyle
|
|
||||||
sd-concepts-library/grit-toy
|
|
||||||
sd-concepts-library/gt-color-paint-2
|
|
||||||
sd-concepts-library/gta5-artwork
|
|
||||||
sd-concepts-library/guttestreker
|
|
||||||
sd-concepts-library/gymnastics-leotard-v2
|
|
||||||
sd-concepts-library/half-life-2-dog
|
|
||||||
sd-concepts-library/handstand
|
|
||||||
sd-concepts-library/hanfu-anime-style
|
|
||||||
sd-concepts-library/happy-chaos
|
|
||||||
sd-concepts-library/happy-person12345
|
|
||||||
sd-concepts-library/happy-person12345-assets
|
|
||||||
sd-concepts-library/harley-quinn
|
|
||||||
sd-concepts-library/harmless-ai-1
|
|
||||||
sd-concepts-library/harmless-ai-house-style-1
|
|
||||||
sd-concepts-library/hd-emoji
|
|
||||||
sd-concepts-library/heather
|
|
||||||
sd-concepts-library/henjo-techno-show
|
|
||||||
sd-concepts-library/herge-style
|
|
||||||
sd-concepts-library/hiten-style-nao
|
|
||||||
sd-concepts-library/hitokomoru-style-nao
|
|
||||||
sd-concepts-library/hiyuki-chan
|
|
||||||
sd-concepts-library/hk-bamboo
|
|
||||||
sd-concepts-library/hk-betweenislands
|
|
||||||
sd-concepts-library/hk-bicycle
|
|
||||||
sd-concepts-library/hk-blackandwhite
|
|
||||||
sd-concepts-library/hk-breakfast
|
|
||||||
sd-concepts-library/hk-buses
|
|
||||||
sd-concepts-library/hk-clouds
|
|
||||||
sd-concepts-library/hk-goldbuddha
|
|
||||||
sd-concepts-library/hk-goldenlantern
|
|
||||||
sd-concepts-library/hk-hkisland
|
|
||||||
sd-concepts-library/hk-leaves
|
|
||||||
sd-concepts-library/hk-market
|
|
||||||
sd-concepts-library/hk-oldcamera
|
|
||||||
sd-concepts-library/hk-opencamera
|
|
||||||
sd-concepts-library/hk-peach
|
|
||||||
sd-concepts-library/hk-phonevax
|
|
||||||
sd-concepts-library/hk-streetpeople
|
|
||||||
sd-concepts-library/hk-vintage
|
|
||||||
sd-concepts-library/hoi4
|
|
||||||
sd-concepts-library/hoi4-leaders
|
|
||||||
sd-concepts-library/homestuck-sprite
|
|
||||||
sd-concepts-library/homestuck-troll
|
|
||||||
sd-concepts-library/hours-sentry-fade
|
|
||||||
sd-concepts-library/hours-style
|
|
||||||
sd-concepts-library/hrgiger-drmacabre
|
|
||||||
sd-concepts-library/huang-guang-jian
|
|
||||||
sd-concepts-library/huatli
|
|
||||||
sd-concepts-library/huayecai820-greyscale
|
|
||||||
sd-concepts-library/hub-city
|
|
||||||
sd-concepts-library/hubris-oshri
|
|
||||||
sd-concepts-library/huckleberry
|
|
||||||
sd-concepts-library/hydrasuit
|
|
||||||
sd-concepts-library/i-love-chaos
|
|
||||||
sd-concepts-library/ibere-thenorio
|
|
||||||
sd-concepts-library/ic0n
|
|
||||||
sd-concepts-library/ie-gravestone
|
|
||||||
sd-concepts-library/ikea-fabler
|
|
||||||
sd-concepts-library/illustration-style
|
|
||||||
sd-concepts-library/ilo-kunst
|
|
||||||
sd-concepts-library/ilya-shkipin
|
|
||||||
sd-concepts-library/im-poppy
|
|
||||||
sd-concepts-library/ina-art
|
|
||||||
sd-concepts-library/indian-watercolor-portraits
|
|
||||||
sd-concepts-library/indiana
|
|
||||||
sd-concepts-library/ingmar-bergman
|
|
||||||
sd-concepts-library/insidewhale
|
|
||||||
sd-concepts-library/interchanges
|
|
||||||
sd-concepts-library/inuyama-muneto-style-nao
|
|
||||||
sd-concepts-library/irasutoya
|
|
||||||
sd-concepts-library/iridescent-illustration-style
|
|
||||||
sd-concepts-library/iridescent-photo-style
|
|
||||||
sd-concepts-library/isabell-schulte-pv-pvii-3000steps
|
|
||||||
sd-concepts-library/isabell-schulte-pviii-1-image-style
|
|
||||||
sd-concepts-library/isabell-schulte-pviii-1024px-1500-steps-style
|
|
||||||
sd-concepts-library/isabell-schulte-pviii-12tiles-3000steps-style
|
|
||||||
sd-concepts-library/isabell-schulte-pviii-4-tiles-1-lr-3000-steps-style
|
|
||||||
sd-concepts-library/isabell-schulte-pviii-4-tiles-3-lr-5000-steps-style
|
|
||||||
sd-concepts-library/isabell-schulte-pviii-4tiles-500steps
|
|
||||||
sd-concepts-library/isabell-schulte-pviii-4tiles-6000steps
|
|
||||||
sd-concepts-library/isabell-schulte-pviii-style
|
|
||||||
sd-concepts-library/isometric-tile-test
|
|
||||||
sd-concepts-library/jacqueline-the-unicorn
|
|
||||||
sd-concepts-library/james-web-space-telescope
|
|
||||||
sd-concepts-library/jamie-hewlett-style
|
|
||||||
sd-concepts-library/jamiels
|
|
||||||
sd-concepts-library/jang-sung-rak-style
|
|
||||||
sd-concepts-library/jetsetdreamcastcovers
|
|
||||||
sd-concepts-library/jin-kisaragi
|
|
||||||
sd-concepts-library/jinjoon-lee-they
|
|
||||||
sd-concepts-library/jm-bergling-monogram
|
|
||||||
sd-concepts-library/joe-mad
|
|
||||||
sd-concepts-library/joe-whiteford-art-style
|
|
||||||
sd-concepts-library/joemad
|
|
||||||
sd-concepts-library/john-blanche
|
|
||||||
sd-concepts-library/johnny-silverhand
|
|
||||||
sd-concepts-library/jojo-bizzare-adventure-manga-lineart
|
|
||||||
sd-concepts-library/jos-de-kat
|
|
||||||
sd-concepts-library/junji-ito-artstyle
|
|
||||||
sd-concepts-library/kaleido
|
|
||||||
sd-concepts-library/kaneoya-sachiko
|
|
||||||
sd-concepts-library/kanovt
|
|
||||||
sd-concepts-library/kanv1
|
|
||||||
sd-concepts-library/karan-gloomy
|
|
||||||
sd-concepts-library/karl-s-lzx-1
|
|
||||||
sd-concepts-library/kasumin
|
|
||||||
sd-concepts-library/kawaii-colors
|
|
||||||
sd-concepts-library/kawaii-girl-plus-object
|
|
||||||
sd-concepts-library/kawaii-girl-plus-style
|
|
||||||
sd-concepts-library/kawaii-girl-plus-style-v1-1
|
|
||||||
sd-concepts-library/kay
|
|
||||||
sd-concepts-library/kaya-ghost-assasin
|
|
||||||
sd-concepts-library/ki
|
|
||||||
sd-concepts-library/kinda-sus
|
|
||||||
sd-concepts-library/kings-quest-agd
|
|
||||||
sd-concepts-library/kiora
|
|
||||||
sd-concepts-library/kira-sensei
|
|
||||||
sd-concepts-library/kirby
|
|
||||||
sd-concepts-library/klance
|
|
||||||
sd-concepts-library/kodakvision500t
|
|
||||||
sd-concepts-library/kogatan-shiny
|
|
||||||
sd-concepts-library/kogecha
|
|
||||||
sd-concepts-library/kojima-ayami
|
|
||||||
sd-concepts-library/koko-dog
|
|
||||||
sd-concepts-library/kuvshinov
|
|
||||||
sd-concepts-library/kysa-v-style
|
|
||||||
sd-concepts-library/laala-character
|
|
||||||
sd-concepts-library/larrette
|
|
||||||
sd-concepts-library/lavko
|
|
||||||
sd-concepts-library/lazytown-stephanie
|
|
||||||
sd-concepts-library/ldr
|
|
||||||
sd-concepts-library/ldrs
|
|
||||||
sd-concepts-library/led-toy
|
|
||||||
sd-concepts-library/lego-astronaut
|
|
||||||
sd-concepts-library/leica
|
|
||||||
sd-concepts-library/leif-jones
|
|
||||||
sd-concepts-library/lex
|
|
||||||
sd-concepts-library/liliana
|
|
||||||
sd-concepts-library/liliana-vess
|
|
||||||
sd-concepts-library/liminal-spaces-2-0
|
|
||||||
sd-concepts-library/liminalspaces
|
|
||||||
sd-concepts-library/line-art
|
|
||||||
sd-concepts-library/line-style
|
|
||||||
sd-concepts-library/linnopoke
|
|
||||||
sd-concepts-library/liquid-light
|
|
||||||
sd-concepts-library/liqwid-aquafarmer
|
|
||||||
sd-concepts-library/lizardman
|
|
||||||
sd-concepts-library/loab-character
|
|
||||||
sd-concepts-library/loab-style
|
|
||||||
sd-concepts-library/lofa
|
|
||||||
sd-concepts-library/logo-with-face-on-shield
|
|
||||||
sd-concepts-library/lolo
|
|
||||||
sd-concepts-library/looney-anime
|
|
||||||
sd-concepts-library/lost-rapper
|
|
||||||
sd-concepts-library/lphr-style
|
|
||||||
sd-concepts-library/lucario
|
|
||||||
sd-concepts-library/lucky-luke
|
|
||||||
sd-concepts-library/lugal-ki-en
|
|
||||||
sd-concepts-library/luinv2
|
|
||||||
sd-concepts-library/lula-13
|
|
||||||
sd-concepts-library/lumio
|
|
||||||
sd-concepts-library/lxj-o4
|
|
||||||
sd-concepts-library/m-geo
|
|
||||||
sd-concepts-library/m-geoo
|
|
||||||
sd-concepts-library/madhubani-art
|
|
||||||
sd-concepts-library/mafalda-character
|
|
||||||
sd-concepts-library/magic-pengel
|
|
||||||
sd-concepts-library/malika-favre-art-style
|
|
||||||
sd-concepts-library/manga-style
|
|
||||||
sd-concepts-library/marbling-art
|
|
||||||
sd-concepts-library/margo
|
|
||||||
sd-concepts-library/marty
|
|
||||||
sd-concepts-library/marty6
|
|
||||||
sd-concepts-library/mass
|
|
||||||
sd-concepts-library/masyanya
|
|
||||||
sd-concepts-library/masyunya
|
|
||||||
sd-concepts-library/mate
|
|
||||||
sd-concepts-library/matthew-stone
|
|
||||||
sd-concepts-library/mattvidpro
|
|
||||||
sd-concepts-library/maurice-quentin-de-la-tour-style
|
|
||||||
sd-concepts-library/maus
|
|
||||||
sd-concepts-library/max-foley
|
|
||||||
sd-concepts-library/mayor-richard-irvin
|
|
||||||
sd-concepts-library/mechasoulall
|
|
||||||
sd-concepts-library/medazzaland
|
|
||||||
sd-concepts-library/memnarch-mtg
|
|
||||||
sd-concepts-library/metagabe
|
|
||||||
sd-concepts-library/meyoco
|
|
||||||
sd-concepts-library/meze-audio-elite-headphones
|
|
||||||
sd-concepts-library/midjourney-style
|
|
||||||
sd-concepts-library/mikako-method
|
|
||||||
sd-concepts-library/mikako-methodi2i
|
|
||||||
sd-concepts-library/miko-3-robot
|
|
||||||
sd-concepts-library/milady
|
|
||||||
sd-concepts-library/mildemelwe-style
|
|
||||||
sd-concepts-library/million-live-akane-15k
|
|
||||||
sd-concepts-library/million-live-akane-3k
|
|
||||||
sd-concepts-library/million-live-akane-shifuku-3k
|
|
||||||
sd-concepts-library/million-live-spade-q-object-3k
|
|
||||||
sd-concepts-library/million-live-spade-q-style-3k
|
|
||||||
sd-concepts-library/minecraft-concept-art
|
|
||||||
sd-concepts-library/mishima-kurone
|
|
||||||
sd-concepts-library/mizkif
|
|
||||||
sd-concepts-library/moeb-style
|
|
||||||
sd-concepts-library/moebius
|
|
||||||
sd-concepts-library/mokoko
|
|
||||||
sd-concepts-library/mokoko-seed
|
|
||||||
sd-concepts-library/monster-girl
|
|
||||||
sd-concepts-library/monster-toy
|
|
||||||
sd-concepts-library/monte-novo
|
|
||||||
sd-concepts-library/moo-moo
|
|
||||||
sd-concepts-library/morino-hon-style
|
|
||||||
sd-concepts-library/moxxi
|
|
||||||
sd-concepts-library/msg
|
|
||||||
sd-concepts-library/mtg-card
|
|
||||||
sd-concepts-library/mtl-longsky
|
|
||||||
sd-concepts-library/mu-sadr
|
|
||||||
sd-concepts-library/munch-leaks-style
|
|
||||||
sd-concepts-library/museum-by-coop-himmelblau
|
|
||||||
sd-concepts-library/muxoyara
|
|
||||||
sd-concepts-library/my-hero-academia-style
|
|
||||||
sd-concepts-library/my-mug
|
|
||||||
sd-concepts-library/mycat
|
|
||||||
sd-concepts-library/mystical-nature
|
|
||||||
sd-concepts-library/naf
|
|
||||||
sd-concepts-library/nahiri
|
|
||||||
sd-concepts-library/namine-ritsu
|
|
||||||
sd-concepts-library/naoki-saito
|
|
||||||
sd-concepts-library/nard-style
|
|
||||||
sd-concepts-library/naruto
|
|
||||||
sd-concepts-library/natasha-johnston
|
|
||||||
sd-concepts-library/nathan-wyatt
|
|
||||||
sd-concepts-library/naval-portrait
|
|
||||||
sd-concepts-library/nazuna
|
|
||||||
sd-concepts-library/nebula
|
|
||||||
sd-concepts-library/ned-flanders
|
|
||||||
sd-concepts-library/neon-pastel
|
|
||||||
sd-concepts-library/new-priests
|
|
||||||
sd-concepts-library/nic-papercuts
|
|
||||||
sd-concepts-library/nikodim
|
|
||||||
sd-concepts-library/nissa-revane
|
|
||||||
sd-concepts-library/nixeu
|
|
||||||
sd-concepts-library/noggles
|
|
||||||
sd-concepts-library/nomad
|
|
||||||
sd-concepts-library/nouns-glasses
|
|
||||||
sd-concepts-library/obama-based-on-xi
|
|
||||||
sd-concepts-library/obama-self-2
|
|
||||||
sd-concepts-library/og-mox-style
|
|
||||||
sd-concepts-library/ohisashiburi-style
|
|
||||||
sd-concepts-library/oleg-kuvaev
|
|
||||||
sd-concepts-library/olli-olli
|
|
||||||
sd-concepts-library/on-kawara
|
|
||||||
sd-concepts-library/one-line-drawing
|
|
||||||
sd-concepts-library/onepunchman
|
|
||||||
sd-concepts-library/onzpo
|
|
||||||
sd-concepts-library/orangejacket
|
|
||||||
sd-concepts-library/ori
|
|
||||||
sd-concepts-library/ori-toor
|
|
||||||
sd-concepts-library/orientalist-art
|
|
||||||
sd-concepts-library/osaka-jyo
|
|
||||||
sd-concepts-library/osaka-jyo2
|
|
||||||
sd-concepts-library/osrsmini2
|
|
||||||
sd-concepts-library/osrstiny
|
|
||||||
sd-concepts-library/other-mother
|
|
||||||
sd-concepts-library/ouroboros
|
|
||||||
sd-concepts-library/outfit-items
|
|
||||||
sd-concepts-library/overprettified
|
|
||||||
sd-concepts-library/owl-house
|
|
||||||
sd-concepts-library/painted-by-silver-of-999
|
|
||||||
sd-concepts-library/painted-by-silver-of-999-2
|
|
||||||
sd-concepts-library/painted-student
|
|
||||||
sd-concepts-library/painting
|
|
||||||
sd-concepts-library/pantone-milk
|
|
||||||
sd-concepts-library/paolo-bonolis
|
|
||||||
sd-concepts-library/party-girl
|
|
||||||
sd-concepts-library/pascalsibertin
|
|
||||||
sd-concepts-library/pastelartstyle
|
|
||||||
sd-concepts-library/paul-noir
|
|
||||||
sd-concepts-library/pen-ink-portraits-bennorthen
|
|
||||||
sd-concepts-library/phan
|
|
||||||
sd-concepts-library/phan-s-collage
|
|
||||||
sd-concepts-library/phc
|
|
||||||
sd-concepts-library/phoenix-01
|
|
||||||
sd-concepts-library/pineda-david
|
|
||||||
sd-concepts-library/pink-beast-pastelae-style
|
|
||||||
sd-concepts-library/pintu
|
|
||||||
sd-concepts-library/pion-by-august-semionov
|
|
||||||
sd-concepts-library/piotr-jablonski
|
|
||||||
sd-concepts-library/pixel-mania
|
|
||||||
sd-concepts-library/pixel-toy
|
|
||||||
sd-concepts-library/pjablonski-style
|
|
||||||
sd-concepts-library/plant-style
|
|
||||||
sd-concepts-library/plen-ki-mun
|
|
||||||
sd-concepts-library/pokemon-conquest-sprites
|
|
||||||
sd-concepts-library/pool-test
|
|
||||||
sd-concepts-library/poolrooms
|
|
||||||
sd-concepts-library/poring-ragnarok-online
|
|
||||||
sd-concepts-library/poutine-dish
|
|
||||||
sd-concepts-library/princess-knight-art
|
|
||||||
sd-concepts-library/progress-chip
|
|
||||||
sd-concepts-library/puerquis-toy
|
|
||||||
sd-concepts-library/purplefishli
|
|
||||||
sd-concepts-library/pyramidheadcosplay
|
|
||||||
sd-concepts-library/qpt-atrium
|
|
||||||
sd-concepts-library/quiesel
|
|
||||||
sd-concepts-library/r-crumb-style
|
|
||||||
sd-concepts-library/rahkshi-bionicle
|
|
||||||
sd-concepts-library/raichu
|
|
||||||
sd-concepts-library/rail-scene
|
|
||||||
sd-concepts-library/rail-scene-style
|
|
||||||
sd-concepts-library/ralph-mcquarrie
|
|
||||||
sd-concepts-library/ransom
|
|
||||||
sd-concepts-library/rayne-weynolds
|
|
||||||
sd-concepts-library/rcrumb-portraits-style
|
|
||||||
sd-concepts-library/rd-chaos
|
|
||||||
sd-concepts-library/rd-paintings
|
|
||||||
sd-concepts-library/red-glasses
|
|
||||||
sd-concepts-library/reeducation-camp
|
|
||||||
sd-concepts-library/reksio-dog
|
|
||||||
sd-concepts-library/rektguy
|
|
||||||
sd-concepts-library/remert
|
|
||||||
sd-concepts-library/renalla
|
|
||||||
sd-concepts-library/repeat
|
|
||||||
sd-concepts-library/retro-girl
|
|
||||||
sd-concepts-library/retro-mecha-rangers
|
|
||||||
sd-concepts-library/retropixelart-pinguin
|
|
||||||
sd-concepts-library/rex-deno
|
|
||||||
sd-concepts-library/rhizomuse-machine-bionic-sculpture
|
|
||||||
sd-concepts-library/ricar
|
|
||||||
sd-concepts-library/rickyart
|
|
||||||
sd-concepts-library/rico-face
|
|
||||||
sd-concepts-library/riker-doll
|
|
||||||
sd-concepts-library/rikiart
|
|
||||||
sd-concepts-library/rikiboy-art
|
|
||||||
sd-concepts-library/rilakkuma
|
|
||||||
sd-concepts-library/rishusei-style
|
|
||||||
sd-concepts-library/rj-palmer
|
|
||||||
sd-concepts-library/rl-pkmn-test
|
|
||||||
sd-concepts-library/road-to-ruin
|
|
||||||
sd-concepts-library/robertnava
|
|
||||||
sd-concepts-library/roblox-avatar
|
|
||||||
sd-concepts-library/roy-lichtenstein
|
|
||||||
sd-concepts-library/ruan-jia
|
|
||||||
sd-concepts-library/russian
|
|
||||||
sd-concepts-library/s1m-naoto-ohshima
|
|
||||||
sd-concepts-library/saheeli-rai
|
|
||||||
sd-concepts-library/sakimi-style
|
|
||||||
sd-concepts-library/salmonid
|
|
||||||
sd-concepts-library/sam-yang
|
|
||||||
sd-concepts-library/sanguo-guanyu
|
|
||||||
sd-concepts-library/sas-style
|
|
||||||
sd-concepts-library/scarlet-witch
|
|
||||||
sd-concepts-library/schloss-mosigkau
|
|
||||||
sd-concepts-library/scrap-style
|
|
||||||
sd-concepts-library/scratch-project
|
|
||||||
sd-concepts-library/sculptural-style
|
|
||||||
sd-concepts-library/sd-concepts-library-uma-meme
|
|
||||||
sd-concepts-library/seamless-ground
|
|
||||||
sd-concepts-library/selezneva-alisa
|
|
||||||
sd-concepts-library/sem-mac2n
|
|
||||||
sd-concepts-library/senneca
|
|
||||||
sd-concepts-library/seraphimmoonshadow-art
|
|
||||||
sd-concepts-library/sewerslvt
|
|
||||||
sd-concepts-library/she-hulk-law-art
|
|
||||||
sd-concepts-library/she-mask
|
|
||||||
sd-concepts-library/sherhook-painting
|
|
||||||
sd-concepts-library/sherhook-painting-v2
|
|
||||||
sd-concepts-library/shev-linocut
|
|
||||||
sd-concepts-library/shigure-ui-style
|
|
||||||
sd-concepts-library/shiny-polyman
|
|
||||||
sd-concepts-library/shrunken-head
|
|
||||||
sd-concepts-library/shu-doll
|
|
||||||
sd-concepts-library/shvoren-style
|
|
||||||
sd-concepts-library/sims-2-portrait
|
|
||||||
sd-concepts-library/singsing
|
|
||||||
sd-concepts-library/singsing-doll
|
|
||||||
sd-concepts-library/sintez-ico
|
|
||||||
sd-concepts-library/skyfalls
|
|
||||||
sd-concepts-library/slm
|
|
||||||
sd-concepts-library/smarties
|
|
||||||
sd-concepts-library/smiling-friend-style
|
|
||||||
sd-concepts-library/smooth-pencils
|
|
||||||
sd-concepts-library/smurf-style
|
|
||||||
sd-concepts-library/smw-map
|
|
||||||
sd-concepts-library/society-finch
|
|
||||||
sd-concepts-library/sorami-style
|
|
||||||
sd-concepts-library/spider-gwen
|
|
||||||
sd-concepts-library/spritual-monsters
|
|
||||||
sd-concepts-library/stable-diffusion-conceptualizer
|
|
||||||
sd-concepts-library/star-tours-posters
|
|
||||||
sd-concepts-library/stardew-valley-pixel-art
|
|
||||||
sd-concepts-library/starhavenmachinegods
|
|
||||||
sd-concepts-library/sterling-archer
|
|
||||||
sd-concepts-library/stretch-re1-robot
|
|
||||||
sd-concepts-library/stuffed-penguin-toy
|
|
||||||
sd-concepts-library/style-of-marc-allante
|
|
||||||
sd-concepts-library/summie-style
|
|
||||||
sd-concepts-library/sunfish
|
|
||||||
sd-concepts-library/super-nintendo-cartridge
|
|
||||||
sd-concepts-library/supitcha-mask
|
|
||||||
sd-concepts-library/sushi-pixel
|
|
||||||
sd-concepts-library/swamp-choe-2
|
|
||||||
sd-concepts-library/t-skrang
|
|
||||||
sd-concepts-library/takuji-kawano
|
|
||||||
sd-concepts-library/tamiyo
|
|
||||||
sd-concepts-library/tangles
|
|
||||||
sd-concepts-library/tb303
|
|
||||||
sd-concepts-library/tcirle
|
|
||||||
sd-concepts-library/teelip-ir-landscape
|
|
||||||
sd-concepts-library/teferi
|
|
||||||
sd-concepts-library/tela-lenca
|
|
||||||
sd-concepts-library/tela-lenca2
|
|
||||||
sd-concepts-library/terraria-style
|
|
||||||
sd-concepts-library/tesla-bot
|
|
||||||
sd-concepts-library/test
|
|
||||||
sd-concepts-library/test-epson
|
|
||||||
sd-concepts-library/test2
|
|
||||||
sd-concepts-library/testing
|
|
||||||
sd-concepts-library/thalasin
|
|
||||||
sd-concepts-library/thegeneral
|
|
||||||
sd-concepts-library/thorneworks
|
|
||||||
sd-concepts-library/threestooges
|
|
||||||
sd-concepts-library/thunderdome-cover
|
|
||||||
sd-concepts-library/thunderdome-covers
|
|
||||||
sd-concepts-library/ti-junglepunk-v0
|
|
||||||
sd-concepts-library/tili-concept
|
|
||||||
sd-concepts-library/titan-robot
|
|
||||||
sd-concepts-library/tnj
|
|
||||||
sd-concepts-library/toho-pixel
|
|
||||||
sd-concepts-library/tomcat
|
|
||||||
sd-concepts-library/tonal1
|
|
||||||
sd-concepts-library/tony-diterlizzi-s-planescape-art
|
|
||||||
sd-concepts-library/towerplace
|
|
||||||
sd-concepts-library/toy
|
|
||||||
sd-concepts-library/toy-bonnie-plush
|
|
||||||
sd-concepts-library/toyota-sera
|
|
||||||
sd-concepts-library/transmutation-circles
|
|
||||||
sd-concepts-library/trash-polka-artstyle
|
|
||||||
sd-concepts-library/travis-bedel
|
|
||||||
sd-concepts-library/trigger-studio
|
|
||||||
sd-concepts-library/trust-support
|
|
||||||
sd-concepts-library/trypophobia
|
|
||||||
sd-concepts-library/ttte
|
|
||||||
sd-concepts-library/tubby
|
|
||||||
sd-concepts-library/tubby-cats
|
|
||||||
sd-concepts-library/tudisco
|
|
||||||
sd-concepts-library/turtlepics
|
|
||||||
sd-concepts-library/type
|
|
||||||
sd-concepts-library/ugly-sonic
|
|
||||||
sd-concepts-library/uliana-kudinova
|
|
||||||
sd-concepts-library/uma
|
|
||||||
sd-concepts-library/uma-clean-object
|
|
||||||
sd-concepts-library/uma-meme
|
|
||||||
sd-concepts-library/uma-meme-style
|
|
||||||
sd-concepts-library/uma-style-classic
|
|
||||||
sd-concepts-library/unfinished-building
|
|
||||||
sd-concepts-library/urivoldemort
|
|
||||||
sd-concepts-library/uzumaki
|
|
||||||
sd-concepts-library/valorantstyle
|
|
||||||
sd-concepts-library/vb-mox
|
|
||||||
sd-concepts-library/vcr-classique
|
|
||||||
sd-concepts-library/venice
|
|
||||||
sd-concepts-library/vespertine
|
|
||||||
sd-concepts-library/victor-narm
|
|
||||||
sd-concepts-library/vietstoneking
|
|
||||||
sd-concepts-library/vivien-reid
|
|
||||||
sd-concepts-library/vkuoo1
|
|
||||||
sd-concepts-library/vraska
|
|
||||||
sd-concepts-library/w3u
|
|
||||||
sd-concepts-library/walter-wick-photography
|
|
||||||
sd-concepts-library/warhammer-40k-drawing-style
|
|
||||||
sd-concepts-library/waterfallshadow
|
|
||||||
sd-concepts-library/wayne-reynolds-character
|
|
||||||
sd-concepts-library/wedding
|
|
||||||
sd-concepts-library/wedding-HandPainted
|
|
||||||
sd-concepts-library/werebloops
|
|
||||||
sd-concepts-library/wheatland
|
|
||||||
sd-concepts-library/wheatland-arknight
|
|
||||||
sd-concepts-library/wheelchair
|
|
||||||
sd-concepts-library/wildkat
|
|
||||||
sd-concepts-library/willy-hd
|
|
||||||
sd-concepts-library/wire-angels
|
|
||||||
sd-concepts-library/wish-artist-stile
|
|
||||||
sd-concepts-library/wlop-style
|
|
||||||
sd-concepts-library/wojak
|
|
||||||
sd-concepts-library/wojaks-now
|
|
||||||
sd-concepts-library/wojaks-now-now-now
|
|
||||||
sd-concepts-library/xatu
|
|
||||||
sd-concepts-library/xatu2
|
|
||||||
sd-concepts-library/xbh
|
|
||||||
sd-concepts-library/xi
|
|
||||||
sd-concepts-library/xidiversity
|
|
||||||
sd-concepts-library/xioboma
|
|
||||||
sd-concepts-library/xuna
|
|
||||||
sd-concepts-library/xyz
|
|
||||||
sd-concepts-library/yb-anime
|
|
||||||
sd-concepts-library/yerba-mate
|
|
||||||
sd-concepts-library/yesdelete
|
|
||||||
sd-concepts-library/yf21
|
|
||||||
sd-concepts-library/yilanov2
|
|
||||||
sd-concepts-library/yinit
|
|
||||||
sd-concepts-library/yoji-shinkawa-style
|
|
||||||
sd-concepts-library/yolandi-visser
|
|
||||||
sd-concepts-library/yoshi
|
|
||||||
sd-concepts-library/youpi2
|
|
||||||
sd-concepts-library/youtooz-candy
|
|
||||||
sd-concepts-library/yuji-himukai-style
|
|
||||||
sd-concepts-library/zaney
|
|
||||||
sd-concepts-library/zaneypixelz
|
|
||||||
sd-concepts-library/zdenek-art
|
|
||||||
sd-concepts-library/zero
|
|
||||||
sd-concepts-library/zero-bottle
|
|
||||||
sd-concepts-library/zero-suit-samus
|
|
||||||
sd-concepts-library/zillertal-can
|
|
||||||
sd-concepts-library/zizigooloo
|
|
||||||
sd-concepts-library/zk
|
|
||||||
sd-concepts-library/zoroark
|
|
|
@ -1,110 +0,0 @@
|
||||||
model:
|
|
||||||
base_learning_rate: 5.0e-03
|
|
||||||
target: ldm.models.diffusion.ddpm.LatentDiffusion
|
|
||||||
params:
|
|
||||||
linear_start: 0.00085
|
|
||||||
linear_end: 0.0120
|
|
||||||
num_timesteps_cond: 1
|
|
||||||
log_every_t: 200
|
|
||||||
timesteps: 1000
|
|
||||||
first_stage_key: image
|
|
||||||
cond_stage_key: caption
|
|
||||||
image_size: 64
|
|
||||||
channels: 4
|
|
||||||
cond_stage_trainable: true # Note: different from the one we trained before
|
|
||||||
conditioning_key: crossattn
|
|
||||||
monitor: val/loss_simple_ema
|
|
||||||
scale_factor: 0.18215
|
|
||||||
use_ema: False
|
|
||||||
embedding_reg_weight: 0.0
|
|
||||||
|
|
||||||
personalization_config:
|
|
||||||
target: ldm.modules.embedding_manager.EmbeddingManager
|
|
||||||
params:
|
|
||||||
placeholder_strings: ["*"]
|
|
||||||
initializer_words: ["sculpture"]
|
|
||||||
per_image_tokens: false
|
|
||||||
num_vectors_per_token: 1
|
|
||||||
progressive_words: False
|
|
||||||
|
|
||||||
unet_config:
|
|
||||||
target: ldm.modules.diffusionmodules.openaimodel.UNetModel
|
|
||||||
params:
|
|
||||||
image_size: 32 # unused
|
|
||||||
in_channels: 4
|
|
||||||
out_channels: 4
|
|
||||||
model_channels: 320
|
|
||||||
attention_resolutions: [ 4, 2, 1 ]
|
|
||||||
num_res_blocks: 2
|
|
||||||
channel_mult: [ 1, 2, 4, 4 ]
|
|
||||||
num_heads: 8
|
|
||||||
use_spatial_transformer: True
|
|
||||||
transformer_depth: 1
|
|
||||||
context_dim: 768
|
|
||||||
use_checkpoint: True
|
|
||||||
legacy: False
|
|
||||||
|
|
||||||
first_stage_config:
|
|
||||||
target: ldm.models.autoencoder.AutoencoderKL
|
|
||||||
params:
|
|
||||||
embed_dim: 4
|
|
||||||
monitor: val/rec_loss
|
|
||||||
ddconfig:
|
|
||||||
double_z: true
|
|
||||||
z_channels: 4
|
|
||||||
resolution: 256
|
|
||||||
in_channels: 3
|
|
||||||
out_ch: 3
|
|
||||||
ch: 128
|
|
||||||
ch_mult:
|
|
||||||
- 1
|
|
||||||
- 2
|
|
||||||
- 4
|
|
||||||
- 4
|
|
||||||
num_res_blocks: 2
|
|
||||||
attn_resolutions: []
|
|
||||||
dropout: 0.0
|
|
||||||
lossconfig:
|
|
||||||
target: torch.nn.Identity
|
|
||||||
|
|
||||||
cond_stage_config:
|
|
||||||
target: ldm.modules.encoders.modules.FrozenCLIPEmbedder
|
|
||||||
|
|
||||||
data:
|
|
||||||
target: main.DataModuleFromConfig
|
|
||||||
params:
|
|
||||||
batch_size: 1
|
|
||||||
num_workers: 2
|
|
||||||
wrap: false
|
|
||||||
train:
|
|
||||||
target: ldm.data.personalized.PersonalizedBase
|
|
||||||
params:
|
|
||||||
size: 512
|
|
||||||
set: train
|
|
||||||
per_image_tokens: false
|
|
||||||
repeats: 100
|
|
||||||
validation:
|
|
||||||
target: ldm.data.personalized.PersonalizedBase
|
|
||||||
params:
|
|
||||||
size: 512
|
|
||||||
set: val
|
|
||||||
per_image_tokens: false
|
|
||||||
repeats: 10
|
|
||||||
|
|
||||||
lightning:
|
|
||||||
modelcheckpoint:
|
|
||||||
params:
|
|
||||||
every_n_train_steps: 500
|
|
||||||
callbacks:
|
|
||||||
image_logger:
|
|
||||||
target: main.ImageLogger
|
|
||||||
params:
|
|
||||||
batch_frequency: 500
|
|
||||||
max_images: 8
|
|
||||||
increase_log_steps: False
|
|
||||||
|
|
||||||
trainer:
|
|
||||||
benchmark: True
|
|
||||||
max_steps: 4000000
|
|
||||||
# max_steps: 4000
|
|
||||||
|
|
|
@ -1,103 +0,0 @@
|
||||||
model:
|
|
||||||
base_learning_rate: 5.0e-03
|
|
||||||
target: ldm.models.diffusion.ddpm.LatentDiffusion
|
|
||||||
params:
|
|
||||||
linear_start: 0.00085
|
|
||||||
linear_end: 0.0120
|
|
||||||
num_timesteps_cond: 1
|
|
||||||
log_every_t: 200
|
|
||||||
timesteps: 1000
|
|
||||||
first_stage_key: image
|
|
||||||
cond_stage_key: caption
|
|
||||||
image_size: 64
|
|
||||||
channels: 4
|
|
||||||
cond_stage_trainable: true # Note: different from the one we trained before
|
|
||||||
conditioning_key: crossattn
|
|
||||||
monitor: val/loss_simple_ema
|
|
||||||
scale_factor: 0.18215
|
|
||||||
use_ema: False
|
|
||||||
embedding_reg_weight: 0.0
|
|
||||||
|
|
||||||
personalization_config:
|
|
||||||
target: ldm.modules.embedding_manager.EmbeddingManager
|
|
||||||
params:
|
|
||||||
placeholder_strings: ["*"]
|
|
||||||
initializer_words: ["painting"]
|
|
||||||
per_image_tokens: false
|
|
||||||
num_vectors_per_token: 1
|
|
||||||
|
|
||||||
unet_config:
|
|
||||||
target: ldm.modules.diffusionmodules.openaimodel.UNetModel
|
|
||||||
params:
|
|
||||||
image_size: 32 # unused
|
|
||||||
in_channels: 4
|
|
||||||
out_channels: 4
|
|
||||||
model_channels: 320
|
|
||||||
attention_resolutions: [ 4, 2, 1 ]
|
|
||||||
num_res_blocks: 2
|
|
||||||
channel_mult: [ 1, 2, 4, 4 ]
|
|
||||||
num_heads: 8
|
|
||||||
use_spatial_transformer: True
|
|
||||||
transformer_depth: 1
|
|
||||||
context_dim: 768
|
|
||||||
use_checkpoint: True
|
|
||||||
legacy: False
|
|
||||||
|
|
||||||
first_stage_config:
|
|
||||||
target: ldm.models.autoencoder.AutoencoderKL
|
|
||||||
params:
|
|
||||||
embed_dim: 4
|
|
||||||
monitor: val/rec_loss
|
|
||||||
ddconfig:
|
|
||||||
double_z: true
|
|
||||||
z_channels: 4
|
|
||||||
resolution: 256
|
|
||||||
in_channels: 3
|
|
||||||
out_ch: 3
|
|
||||||
ch: 128
|
|
||||||
ch_mult:
|
|
||||||
- 1
|
|
||||||
- 2
|
|
||||||
- 4
|
|
||||||
- 4
|
|
||||||
num_res_blocks: 2
|
|
||||||
attn_resolutions: []
|
|
||||||
dropout: 0.0
|
|
||||||
lossconfig:
|
|
||||||
target: torch.nn.Identity
|
|
||||||
|
|
||||||
cond_stage_config:
|
|
||||||
target: ldm.modules.encoders.modules.FrozenCLIPEmbedder
|
|
||||||
|
|
||||||
data:
|
|
||||||
target: main.DataModuleFromConfig
|
|
||||||
params:
|
|
||||||
batch_size: 2
|
|
||||||
num_workers: 16
|
|
||||||
wrap: false
|
|
||||||
train:
|
|
||||||
target: ldm.data.personalized_style.PersonalizedBase
|
|
||||||
params:
|
|
||||||
size: 512
|
|
||||||
set: train
|
|
||||||
per_image_tokens: false
|
|
||||||
repeats: 100
|
|
||||||
validation:
|
|
||||||
target: ldm.data.personalized_style.PersonalizedBase
|
|
||||||
params:
|
|
||||||
size: 512
|
|
||||||
set: val
|
|
||||||
per_image_tokens: false
|
|
||||||
repeats: 10
|
|
||||||
|
|
||||||
lightning:
|
|
||||||
callbacks:
|
|
||||||
image_logger:
|
|
||||||
target: main.ImageLogger
|
|
||||||
params:
|
|
||||||
batch_frequency: 500
|
|
||||||
max_images: 8
|
|
||||||
increase_log_steps: False
|
|
||||||
|
|
||||||
trainer:
|
|
||||||
benchmark: True
|
|
|
@ -1,79 +0,0 @@
|
||||||
model:
|
|
||||||
base_learning_rate: 1.0e-04
|
|
||||||
target: ldm.models.diffusion.ddpm.LatentDiffusion
|
|
||||||
params:
|
|
||||||
linear_start: 0.00085
|
|
||||||
linear_end: 0.0120
|
|
||||||
num_timesteps_cond: 1
|
|
||||||
log_every_t: 200
|
|
||||||
timesteps: 1000
|
|
||||||
first_stage_key: "jpg"
|
|
||||||
cond_stage_key: "txt"
|
|
||||||
image_size: 64
|
|
||||||
channels: 4
|
|
||||||
cond_stage_trainable: false # Note: different from the one we trained before
|
|
||||||
conditioning_key: crossattn
|
|
||||||
monitor: val/loss_simple_ema
|
|
||||||
scale_factor: 0.18215
|
|
||||||
use_ema: False
|
|
||||||
|
|
||||||
scheduler_config: # 10000 warmup steps
|
|
||||||
target: ldm.lr_scheduler.LambdaLinearScheduler
|
|
||||||
params:
|
|
||||||
warm_up_steps: [ 10000 ]
|
|
||||||
cycle_lengths: [ 10000000000000 ] # incredibly large number to prevent corner cases
|
|
||||||
f_start: [ 1.e-6 ]
|
|
||||||
f_max: [ 1. ]
|
|
||||||
f_min: [ 1. ]
|
|
||||||
|
|
||||||
personalization_config:
|
|
||||||
target: ldm.modules.embedding_manager.EmbeddingManager
|
|
||||||
params:
|
|
||||||
placeholder_strings: ["*"]
|
|
||||||
initializer_words: ['sculpture']
|
|
||||||
per_image_tokens: false
|
|
||||||
num_vectors_per_token: 1
|
|
||||||
progressive_words: False
|
|
||||||
|
|
||||||
unet_config:
|
|
||||||
target: ldm.modules.diffusionmodules.openaimodel.UNetModel
|
|
||||||
params:
|
|
||||||
image_size: 32 # unused
|
|
||||||
in_channels: 4
|
|
||||||
out_channels: 4
|
|
||||||
model_channels: 320
|
|
||||||
attention_resolutions: [ 4, 2, 1 ]
|
|
||||||
num_res_blocks: 2
|
|
||||||
channel_mult: [ 1, 2, 4, 4 ]
|
|
||||||
num_heads: 8
|
|
||||||
use_spatial_transformer: True
|
|
||||||
transformer_depth: 1
|
|
||||||
context_dim: 768
|
|
||||||
use_checkpoint: True
|
|
||||||
legacy: False
|
|
||||||
|
|
||||||
first_stage_config:
|
|
||||||
target: ldm.models.autoencoder.AutoencoderKL
|
|
||||||
params:
|
|
||||||
embed_dim: 4
|
|
||||||
monitor: val/rec_loss
|
|
||||||
ddconfig:
|
|
||||||
double_z: true
|
|
||||||
z_channels: 4
|
|
||||||
resolution: 256
|
|
||||||
in_channels: 3
|
|
||||||
out_ch: 3
|
|
||||||
ch: 128
|
|
||||||
ch_mult:
|
|
||||||
- 1
|
|
||||||
- 2
|
|
||||||
- 4
|
|
||||||
- 4
|
|
||||||
num_res_blocks: 2
|
|
||||||
attn_resolutions: []
|
|
||||||
dropout: 0.0
|
|
||||||
lossconfig:
|
|
||||||
target: torch.nn.Identity
|
|
||||||
|
|
||||||
cond_stage_config:
|
|
||||||
target: ldm.modules.encoders.modules.WeightedFrozenCLIPEmbedder
|
|
|
@ -1,79 +0,0 @@
|
||||||
model:
|
|
||||||
base_learning_rate: 7.5e-05
|
|
||||||
target: ldm.models.diffusion.ddpm.LatentInpaintDiffusion
|
|
||||||
params:
|
|
||||||
linear_start: 0.00085
|
|
||||||
linear_end: 0.0120
|
|
||||||
num_timesteps_cond: 1
|
|
||||||
log_every_t: 200
|
|
||||||
timesteps: 1000
|
|
||||||
first_stage_key: "jpg"
|
|
||||||
cond_stage_key: "txt"
|
|
||||||
image_size: 64
|
|
||||||
channels: 4
|
|
||||||
cond_stage_trainable: false # Note: different from the one we trained before
|
|
||||||
conditioning_key: hybrid # important
|
|
||||||
monitor: val/loss_simple_ema
|
|
||||||
scale_factor: 0.18215
|
|
||||||
finetune_keys: null
|
|
||||||
|
|
||||||
scheduler_config: # 10000 warmup steps
|
|
||||||
target: ldm.lr_scheduler.LambdaLinearScheduler
|
|
||||||
params:
|
|
||||||
warm_up_steps: [ 2500 ] # NOTE for resuming. use 10000 if starting from scratch
|
|
||||||
cycle_lengths: [ 10000000000000 ] # incredibly large number to prevent corner cases
|
|
||||||
f_start: [ 1.e-6 ]
|
|
||||||
f_max: [ 1. ]
|
|
||||||
f_min: [ 1. ]
|
|
||||||
|
|
||||||
personalization_config:
|
|
||||||
target: ldm.modules.embedding_manager.EmbeddingManager
|
|
||||||
params:
|
|
||||||
placeholder_strings: ["*"]
|
|
||||||
initializer_words: ['sculpture']
|
|
||||||
per_image_tokens: false
|
|
||||||
num_vectors_per_token: 8
|
|
||||||
progressive_words: False
|
|
||||||
|
|
||||||
unet_config:
|
|
||||||
target: ldm.modules.diffusionmodules.openaimodel.UNetModel
|
|
||||||
params:
|
|
||||||
image_size: 32 # unused
|
|
||||||
in_channels: 9 # 4 data + 4 downscaled image + 1 mask
|
|
||||||
out_channels: 4
|
|
||||||
model_channels: 320
|
|
||||||
attention_resolutions: [ 4, 2, 1 ]
|
|
||||||
num_res_blocks: 2
|
|
||||||
channel_mult: [ 1, 2, 4, 4 ]
|
|
||||||
num_heads: 8
|
|
||||||
use_spatial_transformer: True
|
|
||||||
transformer_depth: 1
|
|
||||||
context_dim: 768
|
|
||||||
use_checkpoint: True
|
|
||||||
legacy: False
|
|
||||||
|
|
||||||
first_stage_config:
|
|
||||||
target: ldm.models.autoencoder.AutoencoderKL
|
|
||||||
params:
|
|
||||||
embed_dim: 4
|
|
||||||
monitor: val/rec_loss
|
|
||||||
ddconfig:
|
|
||||||
double_z: true
|
|
||||||
z_channels: 4
|
|
||||||
resolution: 256
|
|
||||||
in_channels: 3
|
|
||||||
out_ch: 3
|
|
||||||
ch: 128
|
|
||||||
ch_mult:
|
|
||||||
- 1
|
|
||||||
- 2
|
|
||||||
- 4
|
|
||||||
- 4
|
|
||||||
num_res_blocks: 2
|
|
||||||
attn_resolutions: []
|
|
||||||
dropout: 0.0
|
|
||||||
lossconfig:
|
|
||||||
target: torch.nn.Identity
|
|
||||||
|
|
||||||
cond_stage_config:
|
|
||||||
target: ldm.modules.encoders.modules.WeightedFrozenCLIPEmbedder
|
|
|
@ -1,110 +0,0 @@
|
||||||
model:
|
|
||||||
base_learning_rate: 5.0e-03
|
|
||||||
target: ldm.models.diffusion.ddpm.LatentDiffusion
|
|
||||||
params:
|
|
||||||
linear_start: 0.00085
|
|
||||||
linear_end: 0.0120
|
|
||||||
num_timesteps_cond: 1
|
|
||||||
log_every_t: 200
|
|
||||||
timesteps: 1000
|
|
||||||
first_stage_key: image
|
|
||||||
cond_stage_key: caption
|
|
||||||
image_size: 64
|
|
||||||
channels: 4
|
|
||||||
cond_stage_trainable: true # Note: different from the one we trained before
|
|
||||||
conditioning_key: crossattn
|
|
||||||
monitor: val/loss_simple_ema
|
|
||||||
scale_factor: 0.18215
|
|
||||||
use_ema: False
|
|
||||||
embedding_reg_weight: 0.0
|
|
||||||
|
|
||||||
personalization_config:
|
|
||||||
target: ldm.modules.embedding_manager.EmbeddingManager
|
|
||||||
params:
|
|
||||||
placeholder_strings: ["*"]
|
|
||||||
initializer_words: ['sculpture']
|
|
||||||
per_image_tokens: false
|
|
||||||
num_vectors_per_token: 6
|
|
||||||
progressive_words: False
|
|
||||||
|
|
||||||
unet_config:
|
|
||||||
target: ldm.modules.diffusionmodules.openaimodel.UNetModel
|
|
||||||
params:
|
|
||||||
image_size: 32 # unused
|
|
||||||
in_channels: 4
|
|
||||||
out_channels: 4
|
|
||||||
model_channels: 320
|
|
||||||
attention_resolutions: [ 4, 2, 1 ]
|
|
||||||
num_res_blocks: 2
|
|
||||||
channel_mult: [ 1, 2, 4, 4 ]
|
|
||||||
num_heads: 8
|
|
||||||
use_spatial_transformer: True
|
|
||||||
transformer_depth: 1
|
|
||||||
context_dim: 768
|
|
||||||
use_checkpoint: True
|
|
||||||
legacy: False
|
|
||||||
|
|
||||||
first_stage_config:
|
|
||||||
target: ldm.models.autoencoder.AutoencoderKL
|
|
||||||
params:
|
|
||||||
embed_dim: 4
|
|
||||||
monitor: val/rec_loss
|
|
||||||
ddconfig:
|
|
||||||
double_z: true
|
|
||||||
z_channels: 4
|
|
||||||
resolution: 256
|
|
||||||
in_channels: 3
|
|
||||||
out_ch: 3
|
|
||||||
ch: 128
|
|
||||||
ch_mult:
|
|
||||||
- 1
|
|
||||||
- 2
|
|
||||||
- 4
|
|
||||||
- 4
|
|
||||||
num_res_blocks: 2
|
|
||||||
attn_resolutions: []
|
|
||||||
dropout: 0.0
|
|
||||||
lossconfig:
|
|
||||||
target: torch.nn.Identity
|
|
||||||
|
|
||||||
cond_stage_config:
|
|
||||||
target: ldm.modules.encoders.modules.FrozenCLIPEmbedder
|
|
||||||
|
|
||||||
data:
|
|
||||||
target: main.DataModuleFromConfig
|
|
||||||
params:
|
|
||||||
batch_size: 1
|
|
||||||
num_workers: 2
|
|
||||||
wrap: false
|
|
||||||
train:
|
|
||||||
target: ldm.data.personalized.PersonalizedBase
|
|
||||||
params:
|
|
||||||
size: 512
|
|
||||||
set: train
|
|
||||||
per_image_tokens: false
|
|
||||||
repeats: 100
|
|
||||||
validation:
|
|
||||||
target: ldm.data.personalized.PersonalizedBase
|
|
||||||
params:
|
|
||||||
size: 512
|
|
||||||
set: val
|
|
||||||
per_image_tokens: false
|
|
||||||
repeats: 10
|
|
||||||
|
|
||||||
lightning:
|
|
||||||
modelcheckpoint:
|
|
||||||
params:
|
|
||||||
every_n_train_steps: 500
|
|
||||||
callbacks:
|
|
||||||
image_logger:
|
|
||||||
target: main.ImageLogger
|
|
||||||
params:
|
|
||||||
batch_frequency: 500
|
|
||||||
max_images: 5
|
|
||||||
increase_log_steps: False
|
|
||||||
|
|
||||||
trainer:
|
|
||||||
benchmark: False
|
|
||||||
max_steps: 6200
|
|
||||||
# max_steps: 4000
|
|
||||||
|
|
|
@ -1,70 +0,0 @@
|
||||||
@echo off
|
|
||||||
setlocal EnableExtensions EnableDelayedExpansion
|
|
||||||
|
|
||||||
PUSHD "%~dp0"
|
|
||||||
|
|
||||||
set INVOKE_AI_VERSION=latest
|
|
||||||
set arg=%1
|
|
||||||
if "%arg%" neq "" (
|
|
||||||
if "%arg:~0,2%" equ "/?" (
|
|
||||||
echo Usage: update.bat ^<release name or branch^>
|
|
||||||
echo Updates InvokeAI to use the indicated version of the code base.
|
|
||||||
echo Find the version or branch for the release you want, and pass it as the argument.
|
|
||||||
echo For example '.\update.bat v2.2.5' for release 2.2.5.
|
|
||||||
echo '.\update.bat main' for the latest development version
|
|
||||||
echo.
|
|
||||||
echo If no argument provided then will install the most recent release, equivalent to
|
|
||||||
echo '.\update.bat latest'
|
|
||||||
exit /b
|
|
||||||
) else (
|
|
||||||
set INVOKE_AI_VERSION=%arg%
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
set INVOKE_AI_SRC="https://github.com/invoke-ai/InvokeAI/archive/!INVOKE_AI_VERSION!.zip"
|
|
||||||
set INVOKE_AI_DEP=https://raw.githubusercontent.com/invoke-ai/InvokeAI/!INVOKE_AI_VERSION!/environments-and-requirements/requirements-base.txt
|
|
||||||
|
|
||||||
call curl -I "%INVOKE_AI_DEP%" -fs >.tmp.out
|
|
||||||
if %errorlevel% neq 0 (
|
|
||||||
echo '!INVOKE_AI_VERSION!' is not a known branch name or tag. Please check the version and try again.
|
|
||||||
echo "Press any key to continue"
|
|
||||||
pause
|
|
||||||
exit /b
|
|
||||||
)
|
|
||||||
del .tmp.out
|
|
||||||
|
|
||||||
echo This script will update InvokeAI and all its dependencies to !INVOKE_AI_SRC!.
|
|
||||||
echo If you do not want to do this, press control-C now!
|
|
||||||
pause
|
|
||||||
|
|
||||||
call curl -L "%INVOKE_AI_DEP%" > environments-and-requirements/requirements-base.txt
|
|
||||||
|
|
||||||
call .venv\Scripts\activate.bat
|
|
||||||
call .venv\Scripts\python -mpip install -r requirements.txt
|
|
||||||
if %errorlevel% neq 0 (
|
|
||||||
echo Installation of requirements failed. See https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/#troubleshooting for suggestions.
|
|
||||||
pause
|
|
||||||
exit /b
|
|
||||||
)
|
|
||||||
|
|
||||||
call .venv\Scripts\python -mpip install !INVOKE_AI_SRC!
|
|
||||||
if %errorlevel% neq 0 (
|
|
||||||
echo Installation of InvokeAI failed. See https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/#troubleshooting for suggestions.
|
|
||||||
pause
|
|
||||||
exit /b
|
|
||||||
)
|
|
||||||
|
|
||||||
@rem call .venv\Scripts\python .venv\Scripts\configure_invokeai.py --root=.
|
|
||||||
|
|
||||||
@rem if %errorlevel% neq 0 (
|
|
||||||
@rem echo Configuration InvokeAI failed. See https://invoke-ai.github.io/InvokeAI/installation/INSTALL_AUTOMATED/#troubleshooting for suggestions.
|
|
||||||
@rem pause
|
|
||||||
@rem exit /b
|
|
||||||
@rem )
|
|
||||||
|
|
||||||
echo InvokeAI has been updated to '%INVOKE_AI_VERSION%'
|
|
||||||
|
|
||||||
echo "Press any key to continue"
|
|
||||||
pause
|
|
||||||
endlocal
|
|
||||||
|
|
|
@ -1,59 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
if [ $# -ge 1 ] && [ "${1:0:2}" == "-h" ]; then
|
|
||||||
echo "Usage: update.sh <release>"
|
|
||||||
echo "Updates InvokeAI to use the indicated version of the code base."
|
|
||||||
echo "Find the version or branch for the release you want, and pass it as the argument."
|
|
||||||
echo "For example: update.sh v2.2.5 for release 2.2.5."
|
|
||||||
echo " update.sh main for the current development version."
|
|
||||||
echo ""
|
|
||||||
echo "If no argument provided then will install the version tagged with 'latest', equivalent to"
|
|
||||||
echo "update.sh latest"
|
|
||||||
exit -1
|
|
||||||
fi
|
|
||||||
|
|
||||||
INVOKE_AI_VERSION=${1:-latest}
|
|
||||||
|
|
||||||
INVOKE_AI_SRC="https://github.com/invoke-ai/InvokeAI/archive/$INVOKE_AI_VERSION.zip"
|
|
||||||
INVOKE_AI_DEP=https://raw.githubusercontent.com/invoke-ai/InvokeAI/$INVOKE_AI_VERSION/environments-and-requirements/requirements-base.txt
|
|
||||||
|
|
||||||
# ensure we're in the correct folder in case user's CWD is somewhere else
|
|
||||||
scriptdir=$(dirname "$0")
|
|
||||||
cd "$scriptdir"
|
|
||||||
|
|
||||||
function _err_exit {
|
|
||||||
if test "$1" -ne 0
|
|
||||||
then
|
|
||||||
echo "Something went wrong while installing InvokeAI and/or its requirements."
|
|
||||||
echo "Update cannot continue. Please report this error to https://github.com/invoke-ai/InvokeAI/issues"
|
|
||||||
echo -e "Error code $1; Error caught was '$2'"
|
|
||||||
read -p "Press any key to exit..."
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
if ! curl -I "$INVOKE_AI_DEP" -fs >/dev/null; then
|
|
||||||
echo \'$INVOKE_AI_VERSION\' is not a known branch name or tag. Please check the version and try again.
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo This script will update InvokeAI and all its dependencies to version \'$INVOKE_AI_VERSION\'.
|
|
||||||
echo If you do not want to do this, press control-C now!
|
|
||||||
read -p "Press any key to continue, or CTRL-C to exit..."
|
|
||||||
|
|
||||||
curl -L "$INVOKE_AI_DEP" > environments-and-requirements/requirements-base.txt
|
|
||||||
|
|
||||||
. .venv/bin/activate
|
|
||||||
|
|
||||||
./.venv/bin/python -mpip install -r requirements.txt
|
|
||||||
_err_exit $? "The pip program failed to install InvokeAI's requirements."
|
|
||||||
|
|
||||||
./.venv/bin/python -mpip install $INVOKE_AI_SRC
|
|
||||||
_err_exit $? "The pip program failed to install InvokeAI."
|
|
||||||
|
|
||||||
echo InvokeAI updated to \'$INVOKE_AI_VERSION\'
|
|
||||||
|
|
||||||
# ./.venv/bin/python .venv/bin/configure_invokeai.py --root .
|
|
||||||
# _err_exit $? "The configure script failed to run successfully."
|
|
|
@ -1,18 +0,0 @@
|
||||||
** Model Installation Successful **
|
|
||||||
|
|
||||||
You're all set!
|
|
||||||
|
|
||||||
If you installed using one of the automated installation scripts,
|
|
||||||
execute 'invoke.sh' (Linux/macOS) or 'invoke.bat' (Windows) to
|
|
||||||
start InvokeAI.
|
|
||||||
|
|
||||||
If you installed manually, activate the 'invokeai' environment
|
|
||||||
(e.g. 'conda activate invokeai'), then run one of the following
|
|
||||||
commands to start InvokeAI.
|
|
||||||
|
|
||||||
Web UI:
|
|
||||||
python scripts/invoke.py --web # (connect to http://localhost:9090)
|
|
||||||
Command-line interface:
|
|
||||||
python scripts/invoke.py
|
|
||||||
|
|
||||||
Have fun!
|
|
|
@ -1,5 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "Run: cd /opt/invokeai/InvokeAI-Installer/ && ./install.sh"
|
|
||||||
echo
|
|
36
Makefile
36
Makefile
|
@ -1,31 +1,11 @@
|
||||||
.PHONY: cargo-ui
|
|
||||||
|
|
||||||
all:
|
all:
|
||||||
wit mirrors
|
echo "download the current mattermost tarball"
|
||||||
|
echo then build the package using the files in .debian/
|
||||||
cargo-ui:
|
|
||||||
cd cargo-ui && make
|
|
||||||
make all
|
|
||||||
|
|
||||||
help:
|
|
||||||
@echo
|
|
||||||
@echo "# this are just simple shortcuts to package up files on a system once you have it compiled and installed"
|
|
||||||
@echo "cd <projectName>; make all"
|
|
||||||
@echo
|
|
||||||
|
|
||||||
#
|
|
||||||
# Just for reference, you can make a debian package using 'ar' from the command line
|
|
||||||
#
|
|
||||||
# A .deb file is just output from 'ar rcs'
|
|
||||||
#
|
|
||||||
tar-ar:
|
|
||||||
cd DEBIAN && tar --ignore-failed-read -cvJf ../control.tar.xz .
|
|
||||||
cd files && tar -cvJf ../data.tar.xz .
|
|
||||||
ar rcs ${BASENAME}_${VERSION}_amd64.deb debian-binary control.tar.xz data.tar.xz
|
|
||||||
dpkg-deb --info ${BASENAME}_${VERSION}_amd64.deb
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf files/
|
rm -rf .debian/files/opt/
|
||||||
rm -f *.deb
|
|
||||||
rm -f *.tar.xz data.tar.xz
|
download:
|
||||||
rm -rf */DEBIAN/
|
wget -c https://releases.mattermost.com/7.3.0/mattermost-7.3.0-linux-amd64.tar.gz
|
||||||
|
mkdir -p .debian/files/opt/
|
||||||
|
cd .debian/files/opt/ && tar xfz ../../../mattermost-7.3.0-linux-amd64.tar.gz
|
||||||
|
|
37
README.md
37
README.md
|
@ -1,36 +1,3 @@
|
||||||
# Info
|
Needs to make a user and a few other things from
|
||||||
|
|
||||||
Packages up various stuff using the bare minimum of interaction to make a .deb package.
|
https://docs.mattermost.com/install/install-tar.html
|
||||||
|
|
||||||
.deb packages are 'ar' files. You can create them with 'ar', but the recommended way
|
|
||||||
seems to be to use dpkg-deb.
|
|
||||||
|
|
||||||
The packages themselves you can browse and/or download here:
|
|
||||||
|
|
||||||
http://mirrors.wit.org/wit/pool/main/
|
|
||||||
|
|
||||||
# Makefile
|
|
||||||
```
|
|
||||||
help:
|
|
||||||
@echo
|
|
||||||
@echo "# this are just simple shortcuts to package up files on a system once you have it compiled and installed"
|
|
||||||
@echo "cd <projectName>; make all"
|
|
||||||
@echo
|
|
||||||
|
|
||||||
#
|
|
||||||
# Just for reference, you can make a debian package using 'ar' from the command line
|
|
||||||
#
|
|
||||||
# A .deb file is just output from 'ar rcs'
|
|
||||||
#
|
|
||||||
tar-ar:
|
|
||||||
cd DEBIAN && tar --ignore-failed-read -cvJf ../control.tar.xz .
|
|
||||||
cd files && tar -cvJf ../data.tar.xz .
|
|
||||||
ar rcs ${BASENAME}_${VERSION}_amd64.deb debian-binary control.tar.xz data.tar.xz
|
|
||||||
dpkg-deb --info ${BASENAME}_${VERSION}_amd64.deb
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -rf files/
|
|
||||||
rm -f *.deb
|
|
||||||
rm -f *.tar.xz data.tar.xz
|
|
||||||
rm -rf */DEBIAN/
|
|
||||||
```
|
|
||||||
|
|
|
@ -1,66 +0,0 @@
|
||||||
.PHONY: control
|
|
||||||
|
|
||||||
TARBALL=/home/android-studio-2022.1.1.19-linux.tar.gz
|
|
||||||
VERSION=2022
|
|
||||||
MINOR=1.1.19
|
|
||||||
BASENAME=android-studio
|
|
||||||
|
|
||||||
help:
|
|
||||||
@echo
|
|
||||||
@echo "make all # to attempt to download, extract and build the .deb package using dpkg"
|
|
||||||
@echo
|
|
||||||
|
|
||||||
all: download clean extract DEBIAN build
|
|
||||||
|
|
||||||
# uses 'ar' to make a .deb file
|
|
||||||
raw: download clean extract DEBIAN tar-ar
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -rf ../files
|
|
||||||
rm -f ../*.deb
|
|
||||||
rm -f ../*.tar.xz data.tar.xz
|
|
||||||
rm -rf DEBIAN
|
|
||||||
|
|
||||||
download:
|
|
||||||
@echo
|
|
||||||
@echo CHECK FOR NEW VERSION AT: https://developer.android.com/studio
|
|
||||||
@echo CHECK FOR NEW VERSION AT: https://developer.android.com/studio
|
|
||||||
@echo CHECK FOR NEW VERSION AT: https://developer.android.com/studio
|
|
||||||
@echo
|
|
||||||
|
|
||||||
extract:
|
|
||||||
mkdir -p ../files/opt/
|
|
||||||
cd ../files/opt/ && tar xfz ${TARBALL}
|
|
||||||
|
|
||||||
# makes the DEBIAN/ directory
|
|
||||||
DEBIAN:
|
|
||||||
mkdir -p DEBIAN
|
|
||||||
make md5sum
|
|
||||||
make control
|
|
||||||
cp preinst DEBIAN
|
|
||||||
cp postinst DEBIAN
|
|
||||||
|
|
||||||
control:
|
|
||||||
mkdir -p DEBIAN
|
|
||||||
cp control DEBIAN/
|
|
||||||
echo Version: ${VERSION}.${MINOR} >>DEBIAN/control
|
|
||||||
|
|
||||||
md5sum:
|
|
||||||
cd files/ && find -type f -exec md5sum '{}' \; |sort -k2 >../DEBIAN/md5sums
|
|
||||||
|
|
||||||
build:
|
|
||||||
mv DEBIAN ../files/
|
|
||||||
cd .. && dpkg-deb --build files ${BASENAME}_${VERSION}.${MINOR}_amd64.deb
|
|
||||||
cd .. && dpkg-deb --info ${BASENAME}_${VERSION}.${MINOR}_amd64.deb
|
|
||||||
|
|
||||||
# how to make a debian package "raw" just using tar and ar
|
|
||||||
#
|
|
||||||
# READ THIS AGAIN:
|
|
||||||
#
|
|
||||||
# A .deb file is just output from 'ar rcs'
|
|
||||||
#
|
|
||||||
tar-ar: control
|
|
||||||
cd DEBIAN && tar --ignore-failed-read -cvJf ../control.tar.xz .
|
|
||||||
cd files && tar -cvJf ../data.tar.xz .
|
|
||||||
ar rcs ${BASENAME}_${VERSION}.${MINOR}_amd64.deb debian-binary control.tar.xz data.tar.xz
|
|
||||||
dpkg-deb --info ${BASENAME}_${VERSION}.${MINOR}_amd64.deb
|
|
|
@ -1,14 +0,0 @@
|
||||||
###############################
|
|
||||||
|
|
||||||
Turn everything in files/ into a .deb debian package
|
|
||||||
|
|
||||||
###############################
|
|
||||||
|
|
||||||
|
|
||||||
Needs to make a user and a few other things from
|
|
||||||
|
|
||||||
https://docs.mattermost.com/install/install-tar.html
|
|
||||||
|
|
||||||
also note debian packaging policy:
|
|
||||||
|
|
||||||
https://salsa.debian.org/dbnpolicy/policy
|
|
|
@ -1,14 +0,0 @@
|
||||||
Package: android-studio
|
|
||||||
Source: android-studio
|
|
||||||
Architecture: amd64
|
|
||||||
Maintainer: Jeff Carr <jcarr@wit.com>
|
|
||||||
Installed-Size: 5883
|
|
||||||
Section: development
|
|
||||||
Priority: optional
|
|
||||||
Homepage: https://developer.android.com/studio
|
|
||||||
Description: official integrated development environment for Google's Android operating system
|
|
||||||
Raw tarball from upstream.
|
|
||||||
.
|
|
||||||
Files moved to be stored in /opt/android-studio
|
|
||||||
.
|
|
||||||
This packaging is simple. It is just the tarball.
|
|
|
@ -1 +0,0 @@
|
||||||
#!/bin/sh
|
|
|
@ -1,3 +0,0 @@
|
||||||
#!/bin/sh -x
|
|
||||||
|
|
||||||
# Is there something that should be done here?
|
|
|
@ -1,44 +0,0 @@
|
||||||
VERSION=20230129
|
|
||||||
BASENAME=bazel-google
|
|
||||||
|
|
||||||
help:
|
|
||||||
@echo
|
|
||||||
@echo "make all # to attempt to download, extract and build the .deb package using dpkg"
|
|
||||||
@echo
|
|
||||||
|
|
||||||
all: clean extract DEBIAN build
|
|
||||||
|
|
||||||
update-keyring:
|
|
||||||
curl -fsSL https://bazel.build/bazel-release.pub.gpg | gpg --dearmor >bazel-archive-keyring.gpg
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -rf ../files
|
|
||||||
rm -f ../*.deb
|
|
||||||
rm -f ../*.tar.xz data.tar.xz
|
|
||||||
rm -rf DEBIAN
|
|
||||||
|
|
||||||
extract:
|
|
||||||
mkdir -p ../files/usr/share/keyrings
|
|
||||||
cp bazel-archive-keyring.gpg ../files/usr/share/keyrings/
|
|
||||||
mkdir -p ../files/etc/apt/sources.list.d
|
|
||||||
cp bazel.list ../files/etc/apt/sources.list.d/
|
|
||||||
|
|
||||||
# makes the DEBIAN/ directory
|
|
||||||
DEBIAN:
|
|
||||||
mkdir -p DEBIAN
|
|
||||||
|
|
||||||
# make the md5sum file
|
|
||||||
cd ../files/ && find -type f -exec md5sum '{}' \; |sort -k2 >../md5sums
|
|
||||||
mv ../md5sums DEBIAN/
|
|
||||||
|
|
||||||
# make the control there
|
|
||||||
mkdir -p DEBIAN
|
|
||||||
cp control DEBIAN/
|
|
||||||
# echo Version: ${VERSION} >>DEBIAN/control
|
|
||||||
|
|
||||||
cp postinst DEBIAN
|
|
||||||
|
|
||||||
build:
|
|
||||||
mv DEBIAN ../files/
|
|
||||||
cd .. && dpkg-deb --build files ${BASENAME}_${VERSION}_amd64.deb
|
|
||||||
cd .. && dpkg-deb --info ${BASENAME}_${VERSION}_amd64.deb
|
|
Binary file not shown.
|
@ -1,5 +0,0 @@
|
||||||
# sudo apt install -y apt-transport-https curl gnupg
|
|
||||||
# curl -fsSL https://bazel.build/bazel-release.pub.gpg | gpg --dearmor >bazel-archive-keyring.gpg
|
|
||||||
# sudo mv bazel-archive-keyring.gpg /usr/share/keyrings
|
|
||||||
|
|
||||||
deb [arch=amd64 signed-by=/usr/share/keyrings/bazel-archive-keyring.gpg] https://storage.googleapis.com/bazel-apt stable jdk1.8
|
|
|
@ -1 +0,0 @@
|
||||||
10
|
|
|
@ -1,13 +0,0 @@
|
||||||
Source: bazel-google
|
|
||||||
Build-Depends: golang
|
|
||||||
Package: bazel-google
|
|
||||||
Version: 20230129
|
|
||||||
Maintainer: Jeff Carr <jcarr@wit.com>
|
|
||||||
Architecture: amd64
|
|
||||||
Depends: info
|
|
||||||
Description: sets up the apt repository for bazel directly from google
|
|
||||||
As of this build, bazel and tensorflow are under heavy development.
|
|
||||||
For debian, at this time, I would not recommend trying to build this yourself
|
|
||||||
but instead just use the google packages directly. Maybe someone has the time
|
|
||||||
to attempt to rebuild this in the debian build infrastructure, but it's going
|
|
||||||
to be very complicated and error prone.
|
|
|
@ -1,7 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo To install the default version of bazel needed for tensorflow:
|
|
||||||
echo
|
|
||||||
echo Run: apt install bazel-5.3.0
|
|
||||||
echo
|
|
|
@ -1,46 +0,0 @@
|
||||||
.PHONY: control
|
|
||||||
|
|
||||||
# ~/tmp/cargo/example/cargo-ui/cargo-ui
|
|
||||||
|
|
||||||
VERSION=20220510.1
|
|
||||||
BASENAME=cargo-ui
|
|
||||||
|
|
||||||
all: clean extract DEBIAN build
|
|
||||||
|
|
||||||
help:
|
|
||||||
@echo
|
|
||||||
@echo "make all # to attempt to download, extract and build the .deb package using dpkg"
|
|
||||||
@echo
|
|
||||||
|
|
||||||
source:
|
|
||||||
git clone https://github.com/slint-ui/cargo-ui.git
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -rf ../files
|
|
||||||
rm -f ../*.deb
|
|
||||||
rm -f ../*.tar.xz data.tar.xz
|
|
||||||
rm -rf DEBIAN
|
|
||||||
|
|
||||||
extract:
|
|
||||||
mkdir -p ../files/usr/bin
|
|
||||||
cp ~/tmp/cargo/example/cargo-ui/cargo-ui ../files/usr/bin
|
|
||||||
|
|
||||||
# makes the DEBIAN/ directory
|
|
||||||
DEBIAN:
|
|
||||||
mkdir -p DEBIAN
|
|
||||||
|
|
||||||
# make the md5sum file
|
|
||||||
cd ../files/ && find -type f -exec md5sum '{}' \; |sort -k2 >../md5sums
|
|
||||||
mv ../md5sums DEBIAN/
|
|
||||||
|
|
||||||
# make the control there
|
|
||||||
mkdir -p DEBIAN
|
|
||||||
cp control DEBIAN/
|
|
||||||
echo Version: ${VERSION} >>DEBIAN/control
|
|
||||||
|
|
||||||
cp postinst DEBIAN
|
|
||||||
|
|
||||||
build:
|
|
||||||
mv DEBIAN ../files/
|
|
||||||
cd .. && dpkg-deb --build files ${BASENAME}_${VERSION}_amd64.deb
|
|
||||||
cd .. && dpkg-deb --info ${BASENAME}_${VERSION}_amd64.deb
|
|
|
@ -1 +0,0 @@
|
||||||
10
|
|
|
@ -1,7 +0,0 @@
|
||||||
Source: cargo-ui
|
|
||||||
Build-Depends: rust
|
|
||||||
Package: cargo-ui
|
|
||||||
Maintainer: Jeff Carr <jcarr@wit.com>
|
|
||||||
Architecture: amd64
|
|
||||||
Depends:
|
|
||||||
Description: a rust project to make a GUI for cargo, built using Slint:
|
|
|
@ -1,4 +0,0 @@
|
||||||
#!/bin/sh -x
|
|
||||||
|
|
||||||
systemctl daemon-reload
|
|
||||||
useradd -mrU -s /sbin/nologin -d /var/lib/maddy -c "maddy mail server" maddy
|
|
|
@ -1,62 +0,0 @@
|
||||||
.PHONY: control
|
|
||||||
|
|
||||||
# debian files were taking from upstream:
|
|
||||||
# git clone https://github.com/coredns/debian.git
|
|
||||||
|
|
||||||
# TARBALL=~/tmp/flutter-3.7.0-1.5.pre.tgz
|
|
||||||
VERSION=1.10.1
|
|
||||||
MINOR=7da2ceda
|
|
||||||
BASENAME=coredns
|
|
||||||
|
|
||||||
help:
|
|
||||||
@echo
|
|
||||||
@echo "make all # to attempt to download, extract and build the .deb package using dpkg"
|
|
||||||
@echo
|
|
||||||
|
|
||||||
all: download clean extract DEBIAN build
|
|
||||||
|
|
||||||
# uses 'ar' to make a .deb file
|
|
||||||
raw: download clean extract DEBIAN tar-ar
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -rf ../files
|
|
||||||
rm -f ../*.deb
|
|
||||||
rm -f ../*.tar.xz data.tar.xz
|
|
||||||
rm -rf DEBIAN
|
|
||||||
|
|
||||||
download:
|
|
||||||
@echo
|
|
||||||
@echo CHECK FOR NEW VERSION via 'git tags'
|
|
||||||
@echo
|
|
||||||
|
|
||||||
extract:
|
|
||||||
cp -a files ../
|
|
||||||
mkdir -p ../files/usr/bin
|
|
||||||
mkdir -p ../files/usr/share/man/man1/ ../files/usr/share/man/man5/ ../files/usr/share/man/man7/
|
|
||||||
cp ~/go/src/github.com/coredns/coredns/coredns ../files/usr/bin
|
|
||||||
cp ~/go/src/github.com/coredns/coredns/man/*.1 ../files/usr/share/man/man1/
|
|
||||||
cp ~/go/src/github.com/coredns/coredns/man/*.5 ../files/usr/share/man/man5/
|
|
||||||
cp ~/go/src/github.com/coredns/coredns/man/*.7 ../files/usr/share/man/man7/
|
|
||||||
|
|
||||||
# makes the DEBIAN/ directory
|
|
||||||
DEBIAN:
|
|
||||||
mkdir -p DEBIAN
|
|
||||||
make md5sum
|
|
||||||
make control
|
|
||||||
cp postinst DEBIAN
|
|
||||||
|
|
||||||
control:
|
|
||||||
mkdir -p DEBIAN
|
|
||||||
cp control DEBIAN/
|
|
||||||
echo Version: ${VERSION}.${MINOR} >>DEBIAN/control
|
|
||||||
echo Build-Date: `stat -c %z ~/go/src/github.com/coredns/coredns/coredns` >>DEBIAN/control
|
|
||||||
echo Source-Date: `cd ~/go/src/github.com/coredns/coredns/ && git log -1 --format=%cd` >>DEBIAN/control
|
|
||||||
|
|
||||||
md5sum:
|
|
||||||
cd ../files/ && find -type f -exec md5sum '{}' \; |sort -k2 >../md5sums
|
|
||||||
mv ../md5sums DEBIAN/
|
|
||||||
|
|
||||||
build:
|
|
||||||
mv DEBIAN ../files/
|
|
||||||
cd .. && dpkg-deb --build files ${BASENAME}_${VERSION}.${MINOR}_amd64.deb
|
|
||||||
cd .. && dpkg-deb --info ${BASENAME}_${VERSION}.${MINOR}_amd64.deb
|
|
|
@ -1,5 +0,0 @@
|
||||||
coredns (0-0) UNRELEASED; urgency=medium
|
|
||||||
|
|
||||||
* Package for Debian.
|
|
||||||
|
|
||||||
-- Miek Gieben <miek@coredns.io> Sat, 11 Nov 2017 09:52:00 +0000
|
|
|
@ -1 +0,0 @@
|
||||||
10
|
|
|
@ -1,8 +0,0 @@
|
||||||
Source: coredns
|
|
||||||
Maintainer: Miek Gieben <miek@coredns.io>
|
|
||||||
Build-Depends: debhelper (>= 9), ca-certificates, curl, lsb-release, jq
|
|
||||||
|
|
||||||
Package: coredns
|
|
||||||
Architecture: any
|
|
||||||
Description: A modern DNS server written in GO
|
|
||||||
Depends: adduser
|
|
|
@ -1,9 +0,0 @@
|
||||||
# Default Corefile, see https://coredns.io for more information.
|
|
||||||
|
|
||||||
# Answer every below the root, with the whoami plugin. Log all queries
|
|
||||||
# and errors on standard output.
|
|
||||||
. {
|
|
||||||
whoami # coredns.io/plugins/whoami
|
|
||||||
log # coredns.io/plugins/log
|
|
||||||
errors # coredns.io/plugins/errors
|
|
||||||
}
|
|
|
@ -1,20 +0,0 @@
|
||||||
[Unit]
|
|
||||||
Description=CoreDNS DNS server
|
|
||||||
Documentation=https://coredns.io
|
|
||||||
After=network.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
PermissionsStartOnly=true
|
|
||||||
LimitNOFILE=1048576
|
|
||||||
LimitNPROC=512
|
|
||||||
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
|
|
||||||
AmbientCapabilities=CAP_NET_BIND_SERVICE
|
|
||||||
NoNewPrivileges=true
|
|
||||||
User=coredns
|
|
||||||
WorkingDirectory=~
|
|
||||||
ExecStart=/usr/bin/coredns -conf=/etc/coredns/Corefile
|
|
||||||
ExecReload=/bin/kill -SIGUSR1 $MAINPID
|
|
||||||
Restart=on-failure
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
|
@ -1,16 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
configure)
|
|
||||||
if ! getent passwd coredns > /dev/null; then
|
|
||||||
adduser --system --disabled-password --disabled-login --home /var/lib/coredns \
|
|
||||||
--quiet --force-badname --group coredns
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
#DEBHELPER#
|
|
||||||
|
|
||||||
exit 0
|
|
|
@ -1,65 +0,0 @@
|
||||||
.PHONY: control
|
|
||||||
|
|
||||||
SOURCE=~/tmp/flutter
|
|
||||||
VERSION=3.7.0
|
|
||||||
MINOR=git
|
|
||||||
BASENAME=flutter-source-build
|
|
||||||
|
|
||||||
help:
|
|
||||||
@echo
|
|
||||||
@echo "make all # to attempt to download, extract and build the .deb package using dpkg"
|
|
||||||
@echo
|
|
||||||
|
|
||||||
all: download clean extract DEBIAN build
|
|
||||||
|
|
||||||
# uses 'ar' to make a .deb file
|
|
||||||
raw: download clean extract DEBIAN tar-ar
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -rf ../files
|
|
||||||
rm -f ../*.deb
|
|
||||||
rm -f ../*.tar.xz data.tar.xz
|
|
||||||
rm -rf DEBIAN
|
|
||||||
|
|
||||||
download:
|
|
||||||
@echo
|
|
||||||
@echo CHECK FOR NEW VERSION via 'git tags'
|
|
||||||
@echo
|
|
||||||
|
|
||||||
extract:
|
|
||||||
mkdir -p ../files/opt/
|
|
||||||
cd ../files/opt/ && cp -a ${SOURCE} .
|
|
||||||
|
|
||||||
# makes the DEBIAN/ directory
|
|
||||||
DEBIAN:
|
|
||||||
mkdir -p DEBIAN
|
|
||||||
make md5sum
|
|
||||||
make control
|
|
||||||
cp preinst DEBIAN
|
|
||||||
cp postinst DEBIAN
|
|
||||||
|
|
||||||
control:
|
|
||||||
mkdir -p DEBIAN
|
|
||||||
cp control DEBIAN/
|
|
||||||
echo Version: ${VERSION}.${MINOR} >>DEBIAN/control
|
|
||||||
|
|
||||||
md5sum:
|
|
||||||
cd ../files/ && find -type f -exec md5sum '{}' \; |sort -k2 >../md5sums
|
|
||||||
mv ../md5sums DEBIAN/
|
|
||||||
|
|
||||||
build:
|
|
||||||
mv DEBIAN ../files/
|
|
||||||
cd .. && dpkg-deb --build files ${BASENAME}_${VERSION}.${MINOR}_amd64.deb
|
|
||||||
cd .. && dpkg-deb --info ${BASENAME}_${VERSION}.${MINOR}_amd64.deb
|
|
||||||
|
|
||||||
# how to make a debian package "raw" just using tar and ar
|
|
||||||
#
|
|
||||||
# READ THIS AGAIN:
|
|
||||||
#
|
|
||||||
# A .deb file is just output from 'ar rcs'
|
|
||||||
#
|
|
||||||
tar-ar: control
|
|
||||||
cd DEBIAN && tar --ignore-failed-read -cvJf ../control.tar.xz .
|
|
||||||
cd files && tar -cvJf ../data.tar.xz .
|
|
||||||
ar rcs ${BASENAME}_${VERSION}.${MINOR}_amd64.deb debian-binary control.tar.xz data.tar.xz
|
|
||||||
dpkg-deb --info ${BASENAME}_${VERSION}.${MINOR}_amd64.deb
|
|
|
@ -1,14 +0,0 @@
|
||||||
Package: flutter-source-build
|
|
||||||
Source: flutter-source-build
|
|
||||||
Architecture: amd64
|
|
||||||
Maintainer: Jeff Carr <jcarr@wit.com>
|
|
||||||
Installed-Size: 5883
|
|
||||||
Section: development
|
|
||||||
Priority: optional
|
|
||||||
Homepage: https://flutter.dev/
|
|
||||||
Description: flutter-source-build
|
|
||||||
Raw build from git repo
|
|
||||||
.
|
|
||||||
Files moved to be stored in /opt/flutter/
|
|
||||||
.
|
|
||||||
This packaging is simple. It is just the default build.
|
|
|
@ -1 +0,0 @@
|
||||||
2.0
|
|
|
@ -1 +0,0 @@
|
||||||
#!/bin/sh
|
|
|
@ -1,3 +0,0 @@
|
||||||
#!/bin/sh -x
|
|
||||||
|
|
||||||
# Is there something that should be done here?
|
|
|
@ -1,65 +0,0 @@
|
||||||
.PHONY: control
|
|
||||||
|
|
||||||
TARBALL=~/tmp/flutter-3.7.0-1.5.pre.tgz
|
|
||||||
VERSION=3.7.0
|
|
||||||
MINOR=1.5.pre
|
|
||||||
BASENAME=flutter
|
|
||||||
|
|
||||||
help:
|
|
||||||
@echo
|
|
||||||
@echo "make all # to attempt to download, extract and build the .deb package using dpkg"
|
|
||||||
@echo
|
|
||||||
|
|
||||||
all: download clean extract DEBIAN build
|
|
||||||
|
|
||||||
# uses 'ar' to make a .deb file
|
|
||||||
raw: download clean extract DEBIAN tar-ar
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -rf ../files
|
|
||||||
rm -f ../*.deb
|
|
||||||
rm -f ../*.tar.xz data.tar.xz
|
|
||||||
rm -rf DEBIAN
|
|
||||||
|
|
||||||
download:
|
|
||||||
@echo
|
|
||||||
@echo CHECK FOR NEW VERSION via 'git tags'
|
|
||||||
@echo
|
|
||||||
|
|
||||||
extract:
|
|
||||||
mkdir -p ../files/
|
|
||||||
cd ../files/ && tar xfz ${TARBALL}
|
|
||||||
|
|
||||||
# makes the DEBIAN/ directory
|
|
||||||
DEBIAN:
|
|
||||||
mkdir -p DEBIAN
|
|
||||||
make md5sum
|
|
||||||
make control
|
|
||||||
cp preinst DEBIAN
|
|
||||||
cp postinst DEBIAN
|
|
||||||
|
|
||||||
control:
|
|
||||||
mkdir -p DEBIAN
|
|
||||||
cp control DEBIAN/
|
|
||||||
echo Version: ${VERSION}.${MINOR} >>DEBIAN/control
|
|
||||||
|
|
||||||
md5sum:
|
|
||||||
cd ../files/ && find -type f -exec md5sum '{}' \; |sort -k2 >../md5sums
|
|
||||||
mv ../md5sums DEBIAN/
|
|
||||||
|
|
||||||
build:
|
|
||||||
mv DEBIAN ../files/
|
|
||||||
cd .. && dpkg-deb --build files ${BASENAME}_${VERSION}.${MINOR}_amd64.deb
|
|
||||||
cd .. && dpkg-deb --info ${BASENAME}_${VERSION}.${MINOR}_amd64.deb
|
|
||||||
|
|
||||||
# how to make a debian package "raw" just using tar and ar
|
|
||||||
#
|
|
||||||
# READ THIS AGAIN:
|
|
||||||
#
|
|
||||||
# A .deb file is just output from 'ar rcs'
|
|
||||||
#
|
|
||||||
tar-ar: control
|
|
||||||
cd DEBIAN && tar --ignore-failed-read -cvJf ../control.tar.xz .
|
|
||||||
cd files && tar -cvJf ../data.tar.xz .
|
|
||||||
ar rcs ${BASENAME}_${VERSION}.${MINOR}_amd64.deb debian-binary control.tar.xz data.tar.xz
|
|
||||||
dpkg-deb --info ${BASENAME}_${VERSION}.${MINOR}_amd64.deb
|
|
|
@ -1,12 +0,0 @@
|
||||||
Package: flutter
|
|
||||||
Source: flutter
|
|
||||||
Architecture: amd64
|
|
||||||
Maintainer: Jeff Carr <jcarr@wit.com>
|
|
||||||
Installed-Size: 5883
|
|
||||||
Section: development
|
|
||||||
Priority: optional
|
|
||||||
Homepage: https://flutter.dev/
|
|
||||||
Description: open-source UI software development kit created by Google
|
|
||||||
Raw build from git repo
|
|
||||||
Files moved to be stored in /opt/flutter/bin/
|
|
||||||
This packaging is simple. It is just the default build.
|
|
|
@ -1 +0,0 @@
|
||||||
2.0
|
|
|
@ -1 +0,0 @@
|
||||||
#!/bin/sh
|
|
|
@ -1,3 +0,0 @@
|
||||||
#!/bin/sh -x
|
|
||||||
|
|
||||||
# Is there something that should be done here?
|
|
|
@ -1,55 +0,0 @@
|
||||||
.PHONY: control
|
|
||||||
|
|
||||||
# ~/go/src/github.com/foxcpp/maddy/build/maddy version
|
|
||||||
|
|
||||||
# VERSION=0.6.2+9a87d73
|
|
||||||
GITVERSION=$(shell ~/go/src/github.com/foxcpp/maddy/build/maddy version |cut -f1 -d\ |head -n 1)
|
|
||||||
VERSION=$(GITVERSION).3
|
|
||||||
BASENAME=maddy
|
|
||||||
|
|
||||||
all: clean extract DEBIAN build
|
|
||||||
|
|
||||||
help:
|
|
||||||
@echo
|
|
||||||
@echo "make all # to attempt to download, extract and build the .deb package using dpkg"
|
|
||||||
@echo
|
|
||||||
|
|
||||||
source:
|
|
||||||
GO111MODULE="off" go get -v -u github.com/foxcpp/maddy
|
|
||||||
echo
|
|
||||||
echo "cd ~/go/src/github.com/foxcpp/maddy/ && ./build.sh"
|
|
||||||
echo
|
|
||||||
# https://github.com/foxcpp/maddy.git
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -rf ../files
|
|
||||||
rm -f ../*.deb
|
|
||||||
rm -f ../*.tar.xz data.tar.xz
|
|
||||||
rm -rf DEBIAN
|
|
||||||
|
|
||||||
extract:
|
|
||||||
cp ~/go/src/github.com/foxcpp/maddy/build/maddy.conf files/etc/maddy/orig-maddy.conf
|
|
||||||
cp ~/go/src/github.com/foxcpp/maddy/build/systemd/maddy* files/lib/systemd/system/
|
|
||||||
cp -a files ../
|
|
||||||
mkdir -p ../files/usr/bin
|
|
||||||
cp ~/go/src/github.com/foxcpp/maddy/build/maddy ../files/usr/bin
|
|
||||||
|
|
||||||
# makes the DEBIAN/ directory
|
|
||||||
DEBIAN:
|
|
||||||
mkdir -p DEBIAN
|
|
||||||
|
|
||||||
# make the md5sum file
|
|
||||||
cd ../files/ && find -type f -exec md5sum '{}' \; |sort -k2 >../md5sums
|
|
||||||
mv ../md5sums DEBIAN/
|
|
||||||
|
|
||||||
# make the control there
|
|
||||||
mkdir -p DEBIAN
|
|
||||||
cp control DEBIAN/
|
|
||||||
echo Version: ${VERSION} >>DEBIAN/control
|
|
||||||
|
|
||||||
cp postinst DEBIAN
|
|
||||||
|
|
||||||
build:
|
|
||||||
mv DEBIAN ../files/
|
|
||||||
cd .. && dpkg-deb --build files ${BASENAME}_${VERSION}_amd64.deb
|
|
||||||
cd .. && dpkg-deb --info ${BASENAME}_${VERSION}_amd64.deb
|
|
|
@ -1 +0,0 @@
|
||||||
10
|
|
|
@ -1,17 +0,0 @@
|
||||||
Source: maddy
|
|
||||||
Build-Depends: golang
|
|
||||||
Package: maddy
|
|
||||||
Maintainer: Jeff Carr <jcarr@wit.com>
|
|
||||||
Architecture: amd64
|
|
||||||
Depends:
|
|
||||||
Description: A modern mail server written in GO
|
|
||||||
Maddy Mail Server implements all functionality required to run a e-mail server.
|
|
||||||
It can send messages via SMTP (works as MTA), accept messages via SMTP (works as MX)
|
|
||||||
and store messages while providing access to them via IMAP. In addition to
|
|
||||||
that it implements auxiliary protocols that are mandatory to keep email reasonably
|
|
||||||
secure (DKIM, SPF, DMARC, DANE, MTA-STS).
|
|
||||||
.
|
|
||||||
It replaces Postfix, Dovecot, OpenDKIM, OpenSPF, OpenDMARC and more
|
|
||||||
with one daemon with uniform configuration and minimal maintenance cost.
|
|
||||||
.
|
|
||||||
Instructions: https://maddy.email/tutorials/setting-up/
|
|
|
@ -1,17 +0,0 @@
|
||||||
.PHONY: certs
|
|
||||||
|
|
||||||
all:
|
|
||||||
echo none of this works yet
|
|
||||||
|
|
||||||
# ?
|
|
||||||
tls:
|
|
||||||
setfacl -R -m u:maddy:rX /etc/ssl/mx1.example.org.crt /etc/ssl/mx1.example.org.key
|
|
||||||
setfacl -R -m u:maddy:rX /etc/letsencrypt/{live,archive}
|
|
||||||
|
|
||||||
# git clone https://github.com/acmesh-official/acme.sh.git
|
|
||||||
certs:
|
|
||||||
mkdir -p certs/mx1.example.org
|
|
||||||
./acme.sh/acme.sh --force --install-cert -d mx1.example.org \
|
|
||||||
--key-file certs/mx1.example.org/privkey.pem \
|
|
||||||
--fullchain-file certs/mx1.example.org/fullchain.pem
|
|
||||||
|
|
|
@ -1,181 +0,0 @@
|
||||||
## Maddy Mail Server - default configuration file (2022-06-18)
|
|
||||||
# Suitable for small-scale deployments. Uses its own format for local users DB,
|
|
||||||
# should be managed via maddy subcommands.
|
|
||||||
#
|
|
||||||
# See tutorials at https://maddy.email for guidance on typical
|
|
||||||
# configuration changes.
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
|
||||||
# Base variables
|
|
||||||
|
|
||||||
$(hostname) = example.org
|
|
||||||
$(primary_domain) = example.org
|
|
||||||
$(local_domains) = $(primary_domain)
|
|
||||||
|
|
||||||
tls file /etc/maddy/certs/$(hostname)/fullchain.pem /etc/maddy/certs/$(hostname)/privkey.pem
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
|
||||||
# Local storage & authentication
|
|
||||||
|
|
||||||
# pass_table provides local hashed passwords storage for authentication of
|
|
||||||
# users. It can be configured to use any "table" module, in default
|
|
||||||
# configuration a table in SQLite DB is used.
|
|
||||||
# Table can be replaced to use e.g. a file for passwords. Or pass_table module
|
|
||||||
# can be replaced altogether to use some external source of credentials (e.g.
|
|
||||||
# PAM, /etc/shadow file).
|
|
||||||
#
|
|
||||||
# If table module supports it (sql_table does) - credentials can be managed
|
|
||||||
# using 'maddy creds' command.
|
|
||||||
|
|
||||||
auth.pass_table local_authdb {
|
|
||||||
table sql_table {
|
|
||||||
driver sqlite3
|
|
||||||
dsn credentials.db
|
|
||||||
table_name passwords
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# imapsql module stores all indexes and metadata necessary for IMAP using a
|
|
||||||
# relational database. It is used by IMAP endpoint for mailbox access and
|
|
||||||
# also by SMTP & Submission endpoints for delivery of local messages.
|
|
||||||
#
|
|
||||||
# IMAP accounts, mailboxes and all message metadata can be inspected using
|
|
||||||
# imap-* subcommands of maddy.
|
|
||||||
|
|
||||||
storage.imapsql local_mailboxes {
|
|
||||||
driver sqlite3
|
|
||||||
dsn imapsql.db
|
|
||||||
}
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
|
||||||
# SMTP endpoints + message routing
|
|
||||||
|
|
||||||
hostname $(hostname)
|
|
||||||
|
|
||||||
table.chain local_rewrites {
|
|
||||||
optional_step regexp "(.+)\+(.+)@(.+)" "$1@$3"
|
|
||||||
optional_step static {
|
|
||||||
entry postmaster postmaster@$(primary_domain)
|
|
||||||
}
|
|
||||||
optional_step file /etc/maddy/aliases
|
|
||||||
}
|
|
||||||
|
|
||||||
msgpipeline local_routing {
|
|
||||||
# Insert handling for special-purpose local domains here.
|
|
||||||
# e.g.
|
|
||||||
# destination lists.example.org {
|
|
||||||
# deliver_to lmtp tcp://127.0.0.1:8024
|
|
||||||
# }
|
|
||||||
|
|
||||||
destination postmaster $(local_domains) {
|
|
||||||
modify {
|
|
||||||
replace_rcpt &local_rewrites
|
|
||||||
}
|
|
||||||
|
|
||||||
deliver_to &local_mailboxes
|
|
||||||
}
|
|
||||||
|
|
||||||
default_destination {
|
|
||||||
reject 550 5.1.1 "User doesn't exist"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
smtp tcp://0.0.0.0:25 {
|
|
||||||
limits {
|
|
||||||
# Up to 20 msgs/sec across max. 10 SMTP connections.
|
|
||||||
all rate 20 1s
|
|
||||||
all concurrency 10
|
|
||||||
}
|
|
||||||
|
|
||||||
dmarc yes
|
|
||||||
check {
|
|
||||||
require_mx_record
|
|
||||||
dkim
|
|
||||||
spf
|
|
||||||
}
|
|
||||||
|
|
||||||
source $(local_domains) {
|
|
||||||
reject 501 5.1.8 "Use Submission for outgoing SMTP"
|
|
||||||
}
|
|
||||||
default_source {
|
|
||||||
destination postmaster $(local_domains) {
|
|
||||||
deliver_to &local_routing
|
|
||||||
}
|
|
||||||
default_destination {
|
|
||||||
reject 550 5.1.1 "User doesn't exist"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
submission tls://0.0.0.0:465 tcp://0.0.0.0:587 {
|
|
||||||
limits {
|
|
||||||
# Up to 50 msgs/sec across any amount of SMTP connections.
|
|
||||||
all rate 50 1s
|
|
||||||
}
|
|
||||||
|
|
||||||
auth &local_authdb
|
|
||||||
|
|
||||||
source $(local_domains) {
|
|
||||||
check {
|
|
||||||
authorize_sender {
|
|
||||||
prepare_email &local_rewrites
|
|
||||||
user_to_email identity
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
destination postmaster $(local_domains) {
|
|
||||||
deliver_to &local_routing
|
|
||||||
}
|
|
||||||
default_destination {
|
|
||||||
modify {
|
|
||||||
dkim $(primary_domain) $(local_domains) default
|
|
||||||
}
|
|
||||||
deliver_to &remote_queue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
default_source {
|
|
||||||
reject 501 5.1.8 "Non-local sender domain"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
target.remote outbound_delivery {
|
|
||||||
limits {
|
|
||||||
# Up to 20 msgs/sec across max. 10 SMTP connections
|
|
||||||
# for each recipient domain.
|
|
||||||
destination rate 20 1s
|
|
||||||
destination concurrency 10
|
|
||||||
}
|
|
||||||
mx_auth {
|
|
||||||
dane
|
|
||||||
mtasts {
|
|
||||||
cache fs
|
|
||||||
fs_dir mtasts_cache/
|
|
||||||
}
|
|
||||||
local_policy {
|
|
||||||
min_tls_level encrypted
|
|
||||||
min_mx_level none
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
target.queue remote_queue {
|
|
||||||
target &outbound_delivery
|
|
||||||
|
|
||||||
autogenerated_msg_domain $(primary_domain)
|
|
||||||
bounce {
|
|
||||||
destination postmaster $(local_domains) {
|
|
||||||
deliver_to &local_routing
|
|
||||||
}
|
|
||||||
default_destination {
|
|
||||||
reject 550 5.0.0 "Refusing to send DSNs to non-local addresses"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
|
||||||
# IMAP endpoints
|
|
||||||
|
|
||||||
imap tls://0.0.0.0:993 tcp://0.0.0.0:143 {
|
|
||||||
auth &local_authdb
|
|
||||||
storage &local_mailboxes
|
|
||||||
}
|
|
|
@ -1,81 +0,0 @@
|
||||||
[Unit]
|
|
||||||
Description=maddy mail server
|
|
||||||
Documentation=man:maddy(1)
|
|
||||||
Documentation=man:maddy.conf(5)
|
|
||||||
Documentation=https://maddy.email
|
|
||||||
After=network.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=notify
|
|
||||||
NotifyAccess=main
|
|
||||||
|
|
||||||
User=maddy
|
|
||||||
Group=maddy
|
|
||||||
|
|
||||||
# cd to state directory to make sure any relative paths
|
|
||||||
# in config will be relative to it unless handled specially.
|
|
||||||
WorkingDirectory=/var/lib/maddy
|
|
||||||
|
|
||||||
ConfigurationDirectory=maddy
|
|
||||||
RuntimeDirectory=maddy
|
|
||||||
StateDirectory=maddy
|
|
||||||
LogsDirectory=maddy
|
|
||||||
ReadOnlyPaths=/usr/lib/maddy
|
|
||||||
ReadWritePaths=/var/lib/maddy
|
|
||||||
|
|
||||||
# Strict sandboxing. You have no reason to trust code written by strangers from GitHub.
|
|
||||||
PrivateTmp=true
|
|
||||||
ProtectHome=true
|
|
||||||
ProtectSystem=strict
|
|
||||||
ProtectKernelTunables=true
|
|
||||||
ProtectHostname=true
|
|
||||||
ProtectClock=true
|
|
||||||
ProtectControlGroups=true
|
|
||||||
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
|
|
||||||
|
|
||||||
# Additional sandboxing. You need to disable all of these options
|
|
||||||
# for privileged helper binaries (for system auth) to work correctly.
|
|
||||||
NoNewPrivileges=true
|
|
||||||
PrivateDevices=true
|
|
||||||
DeviceAllow=/dev/syslog
|
|
||||||
RestrictSUIDSGID=true
|
|
||||||
ProtectKernelModules=true
|
|
||||||
MemoryDenyWriteExecute=true
|
|
||||||
RestrictNamespaces=true
|
|
||||||
RestrictRealtime=true
|
|
||||||
LockPersonality=true
|
|
||||||
|
|
||||||
# Graceful shutdown with a reasonable timeout.
|
|
||||||
TimeoutStopSec=7s
|
|
||||||
KillMode=mixed
|
|
||||||
KillSignal=SIGTERM
|
|
||||||
|
|
||||||
# Required to bind on ports lower than 1024.
|
|
||||||
AmbientCapabilities=CAP_NET_BIND_SERVICE
|
|
||||||
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
|
|
||||||
|
|
||||||
# Force all files created by maddy to be only readable by it.
|
|
||||||
UMask=0027
|
|
||||||
|
|
||||||
# Bump FD limitations. Even idle mail server can have a lot of FDs open (think
|
|
||||||
# of idle IMAP connections, especially ones abandoned on the other end and
|
|
||||||
# slowly timing out).
|
|
||||||
LimitNOFILE=131072
|
|
||||||
|
|
||||||
# Limit processes count to something reasonable to
|
|
||||||
# prevent resources exhausting due to big amounts of helper
|
|
||||||
# processes launched.
|
|
||||||
LimitNPROC=512
|
|
||||||
|
|
||||||
# Restart server on any problem.
|
|
||||||
Restart=on-failure
|
|
||||||
# ... Unless it is a configuration problem.
|
|
||||||
RestartPreventExitStatus=2
|
|
||||||
|
|
||||||
ExecStart=/usr/local/bin/maddy run
|
|
||||||
|
|
||||||
ExecReload=/bin/kill -USR1 $MAINPID
|
|
||||||
ExecReload=/bin/kill -USR2 $MAINPID
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
|
@ -1,77 +0,0 @@
|
||||||
[Unit]
|
|
||||||
Description=maddy mail server (using %i.conf)
|
|
||||||
Documentation=man:maddy(1)
|
|
||||||
Documentation=man:maddy.conf(5)
|
|
||||||
Documentation=https://maddy.email
|
|
||||||
After=network.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=notify
|
|
||||||
NotifyAccess=main
|
|
||||||
|
|
||||||
User=maddy
|
|
||||||
Group=maddy
|
|
||||||
|
|
||||||
ConfigurationDirectory=maddy
|
|
||||||
RuntimeDirectory=maddy
|
|
||||||
StateDirectory=maddy
|
|
||||||
LogsDirectory=maddy
|
|
||||||
ReadOnlyPaths=/usr/lib/maddy
|
|
||||||
ReadWritePaths=/var/lib/maddy
|
|
||||||
|
|
||||||
# Strict sandboxing. You have no reason to trust code written by strangers from GitHub.
|
|
||||||
PrivateTmp=true
|
|
||||||
PrivateHome=true
|
|
||||||
ProtectSystem=strict
|
|
||||||
ProtectKernelTunables=true
|
|
||||||
ProtectHostname=true
|
|
||||||
ProtectClock=true
|
|
||||||
ProtectControlGroups=true
|
|
||||||
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
|
|
||||||
DeviceAllow=/dev/syslog
|
|
||||||
|
|
||||||
# Additional sandboxing. You need to disable all of these options
|
|
||||||
# for privileged helper binaries (for system auth) to work correctly.
|
|
||||||
NoNewPrivileges=true
|
|
||||||
PrivateDevices=true
|
|
||||||
RestrictSUIDSGID=true
|
|
||||||
ProtectKernelModules=true
|
|
||||||
MemoryDenyWriteExecute=true
|
|
||||||
RestrictNamespaces=true
|
|
||||||
RestrictRealtime=true
|
|
||||||
LockPersonality=true
|
|
||||||
|
|
||||||
# Graceful shutdown with a reasonable timeout.
|
|
||||||
TimeoutStopSec=7s
|
|
||||||
KillMode=mixed
|
|
||||||
KillSignal=SIGTERM
|
|
||||||
|
|
||||||
# Required to bind on ports lower than 1024.
|
|
||||||
AmbientCapabilities=CAP_NET_BIND_SERVICE
|
|
||||||
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
|
|
||||||
|
|
||||||
# Force all files created by maddy to be only readable by it.
|
|
||||||
UMask=0027
|
|
||||||
|
|
||||||
# Bump FD limitations. Even idle mail server can have a lot of FDs open (think
|
|
||||||
# of idle IMAP connections, especially ones abandoned on the other end and
|
|
||||||
# slowly timing out).
|
|
||||||
LimitNOFILE=131072
|
|
||||||
|
|
||||||
# Limit processes count to something reasonable to
|
|
||||||
# prevent resources exhausting due to big amounts of helper
|
|
||||||
# processes launched.
|
|
||||||
LimitNPROC=512
|
|
||||||
|
|
||||||
# Restart server on any problem.
|
|
||||||
Restart=on-failure
|
|
||||||
# ... Unless it is a configuration problem.
|
|
||||||
RestartPreventExitStatus=2
|
|
||||||
|
|
||||||
ExecStart=/usr/local/bin/maddy --config /etc/maddy/%i.conf run
|
|
||||||
|
|
||||||
ExecReload=/bin/kill -USR1 $MAINPID
|
|
||||||
ExecReload=/bin/kill -USR2 $MAINPID
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
|
@ -1,4 +0,0 @@
|
||||||
#!/bin/sh -x
|
|
||||||
|
|
||||||
systemctl daemon-reload
|
|
||||||
useradd -mrU -s /sbin/nologin -d /var/lib/maddy -c "maddy mail server" maddy
|
|
|
@ -1,67 +0,0 @@
|
||||||
.PHONY: control
|
|
||||||
|
|
||||||
VERSION=7.7.1
|
|
||||||
MINOR=v10
|
|
||||||
|
|
||||||
help:
|
|
||||||
@echo
|
|
||||||
@echo "make all # to attempt to download, extract and build the .deb package using dpkg"
|
|
||||||
@echo "make raw # to attempt to download, extract and build the .deb package using 'tar' and 'ar'"
|
|
||||||
@echo
|
|
||||||
|
|
||||||
all: download clean extract DEBIAN build
|
|
||||||
|
|
||||||
raw: download clean extract DEBIAN tar-ar
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -rf files/opt files/DEBIAN/control
|
|
||||||
rm -f *.deb
|
|
||||||
rm -f control.tar.xz data.tar.xz
|
|
||||||
rm -rf files/DEBIAN DEBIAN
|
|
||||||
|
|
||||||
download:
|
|
||||||
@echo
|
|
||||||
@echo
|
|
||||||
@echo CHECK FOR NEW VERSION AT: https://mattermost.com/deploy/
|
|
||||||
@echo CHECK FOR NEW VERSION AT: https://mattermost.com/deploy/
|
|
||||||
@echo CHECK FOR NEW VERSION AT: https://mattermost.com/deploy/
|
|
||||||
@echo
|
|
||||||
@echo
|
|
||||||
sleep 3
|
|
||||||
cd .. && wget -c https://releases.mattermost.com/${VERSION}/mattermost-${VERSION}-linux-amd64.tar.gz
|
|
||||||
|
|
||||||
extract:
|
|
||||||
mkdir -p ../files/opt/
|
|
||||||
cd ../files/opt/ && tar xfz ../../mattermost-${VERSION}-linux-amd64.tar.gz
|
|
||||||
|
|
||||||
# update the bash-completion script
|
|
||||||
bash-completion:
|
|
||||||
cd ../ && mattermost completion bash > files/etc/bash_completion.d/mattermost
|
|
||||||
|
|
||||||
# makes the DEBIAN/ directory
|
|
||||||
DEBIAN:
|
|
||||||
mkdir -p DEBIAN
|
|
||||||
make md5sum
|
|
||||||
make control
|
|
||||||
cp preinst DEBIAN
|
|
||||||
cp postinst DEBIAN
|
|
||||||
|
|
||||||
control:
|
|
||||||
mkdir -p DEBIAN
|
|
||||||
cp control DEBIAN/
|
|
||||||
echo Version: ${VERSION}.${MINOR} >>DEBIAN/control
|
|
||||||
|
|
||||||
md5sum:
|
|
||||||
cd ../files/ && find -type f -exec md5sum '{}' \; |sort -k2 >../DEBIAN/md5sums
|
|
||||||
|
|
||||||
build:
|
|
||||||
mv DEBIAN ../files/
|
|
||||||
cd ../files && dpkg-deb --build files mattermost_${VERSION}.${MINOR}_amd64.deb
|
|
||||||
cd ../files && dpkg-deb --info mattermost_${VERSION}.${MINOR}_amd64.deb
|
|
||||||
|
|
||||||
# how to make a debian package "raw" just using tar and ar
|
|
||||||
tar-ar: control
|
|
||||||
cd DEBIAN && tar --ignore-failed-read -cvJf ../control.tar.xz .
|
|
||||||
cd files && tar -cvJf ../data.tar.xz .
|
|
||||||
ar rcs mattermost_${VERSION}.${MINOR}_amd64.deb debian-binary control.tar.xz data.tar.xz
|
|
||||||
dpkg-deb --info mattermost_${VERSION}.${MINOR}_amd64.deb
|
|
|
@ -1,14 +0,0 @@
|
||||||
###############################
|
|
||||||
|
|
||||||
Turn everything in files/ into a .deb debian package
|
|
||||||
|
|
||||||
###############################
|
|
||||||
|
|
||||||
|
|
||||||
Needs to make a user and a few other things from
|
|
||||||
|
|
||||||
https://docs.mattermost.com/install/install-tar.html
|
|
||||||
|
|
||||||
also note debian packaging policy:
|
|
||||||
|
|
||||||
https://salsa.debian.org/dbnpolicy/policy
|
|
|
@ -1 +0,0 @@
|
||||||
2.0
|
|
|
@ -1,325 +0,0 @@
|
||||||
# bash completion V2 for mattermost -*- shell-script -*-
|
|
||||||
|
|
||||||
__mattermost_debug()
|
|
||||||
{
|
|
||||||
if [[ -n ${BASH_COMP_DEBUG_FILE:-} ]]; then
|
|
||||||
echo "$*" >> "${BASH_COMP_DEBUG_FILE}"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Macs have bash3 for which the bash-completion package doesn't include
|
|
||||||
# _init_completion. This is a minimal version of that function.
|
|
||||||
__mattermost_init_completion()
|
|
||||||
{
|
|
||||||
COMPREPLY=()
|
|
||||||
_get_comp_words_by_ref "$@" cur prev words cword
|
|
||||||
}
|
|
||||||
|
|
||||||
# This function calls the mattermost program to obtain the completion
|
|
||||||
# results and the directive. It fills the 'out' and 'directive' vars.
|
|
||||||
__mattermost_get_completion_results() {
|
|
||||||
local requestComp lastParam lastChar args
|
|
||||||
|
|
||||||
# Prepare the command to request completions for the program.
|
|
||||||
# Calling ${words[0]} instead of directly mattermost allows to handle aliases
|
|
||||||
args=("${words[@]:1}")
|
|
||||||
requestComp="${words[0]} __complete ${args[*]}"
|
|
||||||
|
|
||||||
lastParam=${words[$((${#words[@]}-1))]}
|
|
||||||
lastChar=${lastParam:$((${#lastParam}-1)):1}
|
|
||||||
__mattermost_debug "lastParam ${lastParam}, lastChar ${lastChar}"
|
|
||||||
|
|
||||||
if [ -z "${cur}" ] && [ "${lastChar}" != "=" ]; then
|
|
||||||
# If the last parameter is complete (there is a space following it)
|
|
||||||
# We add an extra empty parameter so we can indicate this to the go method.
|
|
||||||
__mattermost_debug "Adding extra empty parameter"
|
|
||||||
requestComp="${requestComp} ''"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# When completing a flag with an = (e.g., mattermost -n=<TAB>)
|
|
||||||
# bash focuses on the part after the =, so we need to remove
|
|
||||||
# the flag part from $cur
|
|
||||||
if [[ "${cur}" == -*=* ]]; then
|
|
||||||
cur="${cur#*=}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
__mattermost_debug "Calling ${requestComp}"
|
|
||||||
# Use eval to handle any environment variables and such
|
|
||||||
out=$(eval "${requestComp}" 2>/dev/null)
|
|
||||||
|
|
||||||
# Extract the directive integer at the very end of the output following a colon (:)
|
|
||||||
directive=${out##*:}
|
|
||||||
# Remove the directive
|
|
||||||
out=${out%:*}
|
|
||||||
if [ "${directive}" = "${out}" ]; then
|
|
||||||
# There is not directive specified
|
|
||||||
directive=0
|
|
||||||
fi
|
|
||||||
__mattermost_debug "The completion directive is: ${directive}"
|
|
||||||
__mattermost_debug "The completions are: ${out}"
|
|
||||||
}
|
|
||||||
|
|
||||||
__mattermost_process_completion_results() {
|
|
||||||
local shellCompDirectiveError=1
|
|
||||||
local shellCompDirectiveNoSpace=2
|
|
||||||
local shellCompDirectiveNoFileComp=4
|
|
||||||
local shellCompDirectiveFilterFileExt=8
|
|
||||||
local shellCompDirectiveFilterDirs=16
|
|
||||||
|
|
||||||
if [ $((directive & shellCompDirectiveError)) -ne 0 ]; then
|
|
||||||
# Error code. No completion.
|
|
||||||
__mattermost_debug "Received error from custom completion go code"
|
|
||||||
return
|
|
||||||
else
|
|
||||||
if [ $((directive & shellCompDirectiveNoSpace)) -ne 0 ]; then
|
|
||||||
if [[ $(type -t compopt) = "builtin" ]]; then
|
|
||||||
__mattermost_debug "Activating no space"
|
|
||||||
compopt -o nospace
|
|
||||||
else
|
|
||||||
__mattermost_debug "No space directive not supported in this version of bash"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if [ $((directive & shellCompDirectiveNoFileComp)) -ne 0 ]; then
|
|
||||||
if [[ $(type -t compopt) = "builtin" ]]; then
|
|
||||||
__mattermost_debug "Activating no file completion"
|
|
||||||
compopt +o default
|
|
||||||
else
|
|
||||||
__mattermost_debug "No file completion directive not supported in this version of bash"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Separate activeHelp from normal completions
|
|
||||||
local completions=()
|
|
||||||
local activeHelp=()
|
|
||||||
__mattermost_extract_activeHelp
|
|
||||||
|
|
||||||
if [ $((directive & shellCompDirectiveFilterFileExt)) -ne 0 ]; then
|
|
||||||
# File extension filtering
|
|
||||||
local fullFilter filter filteringCmd
|
|
||||||
|
|
||||||
# Do not use quotes around the $completions variable or else newline
|
|
||||||
# characters will be kept.
|
|
||||||
for filter in ${completions[*]}; do
|
|
||||||
fullFilter+="$filter|"
|
|
||||||
done
|
|
||||||
|
|
||||||
filteringCmd="_filedir $fullFilter"
|
|
||||||
__mattermost_debug "File filtering command: $filteringCmd"
|
|
||||||
$filteringCmd
|
|
||||||
elif [ $((directive & shellCompDirectiveFilterDirs)) -ne 0 ]; then
|
|
||||||
# File completion for directories only
|
|
||||||
|
|
||||||
# Use printf to strip any trailing newline
|
|
||||||
local subdir
|
|
||||||
subdir=$(printf "%s" "${completions[0]}")
|
|
||||||
if [ -n "$subdir" ]; then
|
|
||||||
__mattermost_debug "Listing directories in $subdir"
|
|
||||||
pushd "$subdir" >/dev/null 2>&1 && _filedir -d && popd >/dev/null 2>&1 || return
|
|
||||||
else
|
|
||||||
__mattermost_debug "Listing directories in ."
|
|
||||||
_filedir -d
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
__mattermost_handle_completion_types
|
|
||||||
fi
|
|
||||||
|
|
||||||
__mattermost_handle_special_char "$cur" :
|
|
||||||
__mattermost_handle_special_char "$cur" =
|
|
||||||
|
|
||||||
# Print the activeHelp statements before we finish
|
|
||||||
if [ ${#activeHelp} -ne 0 ]; then
|
|
||||||
printf "\n";
|
|
||||||
printf "%s\n" "${activeHelp[@]}"
|
|
||||||
printf "\n"
|
|
||||||
|
|
||||||
# The prompt format is only available from bash 4.4.
|
|
||||||
# We test if it is available before using it.
|
|
||||||
if (x=${PS1@P}) 2> /dev/null; then
|
|
||||||
printf "%s" "${PS1@P}${COMP_LINE[@]}"
|
|
||||||
else
|
|
||||||
# Can't print the prompt. Just print the
|
|
||||||
# text the user had typed, it is workable enough.
|
|
||||||
printf "%s" "${COMP_LINE[@]}"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Separate activeHelp lines from real completions.
|
|
||||||
# Fills the $activeHelp and $completions arrays.
|
|
||||||
__mattermost_extract_activeHelp() {
|
|
||||||
local activeHelpMarker="_activeHelp_ "
|
|
||||||
local endIndex=${#activeHelpMarker}
|
|
||||||
|
|
||||||
while IFS='' read -r comp; do
|
|
||||||
if [ "${comp:0:endIndex}" = "$activeHelpMarker" ]; then
|
|
||||||
comp=${comp:endIndex}
|
|
||||||
__mattermost_debug "ActiveHelp found: $comp"
|
|
||||||
if [ -n "$comp" ]; then
|
|
||||||
activeHelp+=("$comp")
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# Not an activeHelp line but a normal completion
|
|
||||||
completions+=("$comp")
|
|
||||||
fi
|
|
||||||
done < <(printf "%s\n" "${out}")
|
|
||||||
}
|
|
||||||
|
|
||||||
__mattermost_handle_completion_types() {
|
|
||||||
__mattermost_debug "__mattermost_handle_completion_types: COMP_TYPE is $COMP_TYPE"
|
|
||||||
|
|
||||||
case $COMP_TYPE in
|
|
||||||
37|42)
|
|
||||||
# Type: menu-complete/menu-complete-backward and insert-completions
|
|
||||||
# If the user requested inserting one completion at a time, or all
|
|
||||||
# completions at once on the command-line we must remove the descriptions.
|
|
||||||
# https://github.com/spf13/cobra/issues/1508
|
|
||||||
local tab=$'\t' comp
|
|
||||||
while IFS='' read -r comp; do
|
|
||||||
[[ -z $comp ]] && continue
|
|
||||||
# Strip any description
|
|
||||||
comp=${comp%%$tab*}
|
|
||||||
# Only consider the completions that match
|
|
||||||
if [[ $comp == "$cur"* ]]; then
|
|
||||||
COMPREPLY+=("$comp")
|
|
||||||
fi
|
|
||||||
done < <(printf "%s\n" "${completions[@]}")
|
|
||||||
;;
|
|
||||||
|
|
||||||
*)
|
|
||||||
# Type: complete (normal completion)
|
|
||||||
__mattermost_handle_standard_completion_case
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
__mattermost_handle_standard_completion_case() {
|
|
||||||
local tab=$'\t' comp
|
|
||||||
|
|
||||||
# Short circuit to optimize if we don't have descriptions
|
|
||||||
if [[ "${completions[*]}" != *$tab* ]]; then
|
|
||||||
IFS=$'\n' read -ra COMPREPLY -d '' < <(compgen -W "${completions[*]}" -- "$cur")
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
local longest=0
|
|
||||||
local compline
|
|
||||||
# Look for the longest completion so that we can format things nicely
|
|
||||||
while IFS='' read -r compline; do
|
|
||||||
[[ -z $compline ]] && continue
|
|
||||||
# Strip any description before checking the length
|
|
||||||
comp=${compline%%$tab*}
|
|
||||||
# Only consider the completions that match
|
|
||||||
[[ $comp == "$cur"* ]] || continue
|
|
||||||
COMPREPLY+=("$compline")
|
|
||||||
if ((${#comp}>longest)); then
|
|
||||||
longest=${#comp}
|
|
||||||
fi
|
|
||||||
done < <(printf "%s\n" "${completions[@]}")
|
|
||||||
|
|
||||||
# If there is a single completion left, remove the description text
|
|
||||||
if [ ${#COMPREPLY[*]} -eq 1 ]; then
|
|
||||||
__mattermost_debug "COMPREPLY[0]: ${COMPREPLY[0]}"
|
|
||||||
comp="${COMPREPLY[0]%%$tab*}"
|
|
||||||
__mattermost_debug "Removed description from single completion, which is now: ${comp}"
|
|
||||||
COMPREPLY[0]=$comp
|
|
||||||
else # Format the descriptions
|
|
||||||
__mattermost_format_comp_descriptions $longest
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
__mattermost_handle_special_char()
|
|
||||||
{
|
|
||||||
local comp="$1"
|
|
||||||
local char=$2
|
|
||||||
if [[ "$comp" == *${char}* && "$COMP_WORDBREAKS" == *${char}* ]]; then
|
|
||||||
local word=${comp%"${comp##*${char}}"}
|
|
||||||
local idx=${#COMPREPLY[*]}
|
|
||||||
while [[ $((--idx)) -ge 0 ]]; do
|
|
||||||
COMPREPLY[$idx]=${COMPREPLY[$idx]#"$word"}
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
__mattermost_format_comp_descriptions()
|
|
||||||
{
|
|
||||||
local tab=$'\t'
|
|
||||||
local comp desc maxdesclength
|
|
||||||
local longest=$1
|
|
||||||
|
|
||||||
local i ci
|
|
||||||
for ci in ${!COMPREPLY[*]}; do
|
|
||||||
comp=${COMPREPLY[ci]}
|
|
||||||
# Properly format the description string which follows a tab character if there is one
|
|
||||||
if [[ "$comp" == *$tab* ]]; then
|
|
||||||
__mattermost_debug "Original comp: $comp"
|
|
||||||
desc=${comp#*$tab}
|
|
||||||
comp=${comp%%$tab*}
|
|
||||||
|
|
||||||
# $COLUMNS stores the current shell width.
|
|
||||||
# Remove an extra 4 because we add 2 spaces and 2 parentheses.
|
|
||||||
maxdesclength=$(( COLUMNS - longest - 4 ))
|
|
||||||
|
|
||||||
# Make sure we can fit a description of at least 8 characters
|
|
||||||
# if we are to align the descriptions.
|
|
||||||
if [[ $maxdesclength -gt 8 ]]; then
|
|
||||||
# Add the proper number of spaces to align the descriptions
|
|
||||||
for ((i = ${#comp} ; i < longest ; i++)); do
|
|
||||||
comp+=" "
|
|
||||||
done
|
|
||||||
else
|
|
||||||
# Don't pad the descriptions so we can fit more text after the completion
|
|
||||||
maxdesclength=$(( COLUMNS - ${#comp} - 4 ))
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If there is enough space for any description text,
|
|
||||||
# truncate the descriptions that are too long for the shell width
|
|
||||||
if [ $maxdesclength -gt 0 ]; then
|
|
||||||
if [ ${#desc} -gt $maxdesclength ]; then
|
|
||||||
desc=${desc:0:$(( maxdesclength - 1 ))}
|
|
||||||
desc+="…"
|
|
||||||
fi
|
|
||||||
comp+=" ($desc)"
|
|
||||||
fi
|
|
||||||
COMPREPLY[ci]=$comp
|
|
||||||
__mattermost_debug "Final comp: $comp"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
__start_mattermost()
|
|
||||||
{
|
|
||||||
local cur prev words cword split
|
|
||||||
|
|
||||||
COMPREPLY=()
|
|
||||||
|
|
||||||
# Call _init_completion from the bash-completion package
|
|
||||||
# to prepare the arguments properly
|
|
||||||
if declare -F _init_completion >/dev/null 2>&1; then
|
|
||||||
_init_completion -n "=:" || return
|
|
||||||
else
|
|
||||||
__mattermost_init_completion -n "=:" || return
|
|
||||||
fi
|
|
||||||
|
|
||||||
__mattermost_debug
|
|
||||||
__mattermost_debug "========= starting completion logic =========="
|
|
||||||
__mattermost_debug "cur is ${cur}, words[*] is ${words[*]}, #words[@] is ${#words[@]}, cword is $cword"
|
|
||||||
|
|
||||||
# The user could have moved the cursor backwards on the command-line.
|
|
||||||
# We need to trigger completion from the $cword location, so we need
|
|
||||||
# to truncate the command-line ($words) up to the $cword location.
|
|
||||||
words=("${words[@]:0:$cword+1}")
|
|
||||||
__mattermost_debug "Truncated words[*]: ${words[*]},"
|
|
||||||
|
|
||||||
local out directive
|
|
||||||
__mattermost_get_completion_results
|
|
||||||
__mattermost_process_completion_results
|
|
||||||
}
|
|
||||||
|
|
||||||
if [[ $(type -t compopt) = "builtin" ]]; then
|
|
||||||
complete -o default -F __start_mattermost mattermost
|
|
||||||
else
|
|
||||||
complete -o default -o nospace -F __start_mattermost mattermost
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ex: ts=4 sw=4 et filetype=sh
|
|
|
@ -1,3 +0,0 @@
|
||||||
# config.json
|
|
||||||
|
|
||||||
This is the system configuration file for your Mattermost server. Settings are specific to different editions of Mattermost. Please read the documentation before making changes: https://docs.mattermost.com/configure/configuration-settings.html/
|
|
|
@ -1,617 +0,0 @@
|
||||||
{
|
|
||||||
"ServiceSettings": {
|
|
||||||
"SiteURL": "",
|
|
||||||
"WebsocketURL": "",
|
|
||||||
"LicenseFileLocation": "",
|
|
||||||
"ListenAddress": ":8065",
|
|
||||||
"ConnectionSecurity": "",
|
|
||||||
"TLSCertFile": "",
|
|
||||||
"TLSKeyFile": "",
|
|
||||||
"TLSMinVer": "1.2",
|
|
||||||
"TLSStrictTransport": false,
|
|
||||||
"TLSStrictTransportMaxAge": 63072000,
|
|
||||||
"TLSOverwriteCiphers": [],
|
|
||||||
"UseLetsEncrypt": false,
|
|
||||||
"LetsEncryptCertificateCacheFile": "./config/letsencrypt.cache",
|
|
||||||
"Forward80To443": false,
|
|
||||||
"TrustedProxyIPHeader": [],
|
|
||||||
"ReadTimeout": 300,
|
|
||||||
"WriteTimeout": 300,
|
|
||||||
"IdleTimeout": 60,
|
|
||||||
"MaximumLoginAttempts": 10,
|
|
||||||
"GoroutineHealthThreshold": -1,
|
|
||||||
"EnableOAuthServiceProvider": false,
|
|
||||||
"EnableIncomingWebhooks": true,
|
|
||||||
"EnableOutgoingWebhooks": true,
|
|
||||||
"EnableCommands": true,
|
|
||||||
"EnablePostUsernameOverride": false,
|
|
||||||
"EnablePostIconOverride": false,
|
|
||||||
"GoogleDeveloperKey": "",
|
|
||||||
"EnableLinkPreviews": true,
|
|
||||||
"EnablePermalinkPreviews": true,
|
|
||||||
"RestrictLinkPreviews": "",
|
|
||||||
"EnableTesting": false,
|
|
||||||
"EnableDeveloper": false,
|
|
||||||
"DeveloperFlags": "",
|
|
||||||
"EnableClientPerformanceDebugging": false,
|
|
||||||
"EnableOpenTracing": false,
|
|
||||||
"EnableSecurityFixAlert": true,
|
|
||||||
"EnableInsecureOutgoingConnections": false,
|
|
||||||
"AllowedUntrustedInternalConnections": "",
|
|
||||||
"EnableMultifactorAuthentication": false,
|
|
||||||
"EnforceMultifactorAuthentication": false,
|
|
||||||
"EnableUserAccessTokens": false,
|
|
||||||
"AllowCorsFrom": "",
|
|
||||||
"CorsExposedHeaders": "",
|
|
||||||
"CorsAllowCredentials": false,
|
|
||||||
"CorsDebug": false,
|
|
||||||
"AllowCookiesForSubdomains": false,
|
|
||||||
"ExtendSessionLengthWithActivity": true,
|
|
||||||
"SessionLengthWebInDays": 30,
|
|
||||||
"SessionLengthWebInHours": 720,
|
|
||||||
"SessionLengthMobileInDays": 30,
|
|
||||||
"SessionLengthMobileInHours": 720,
|
|
||||||
"SessionLengthSSOInDays": 30,
|
|
||||||
"SessionLengthSSOInHours": 720,
|
|
||||||
"SessionCacheInMinutes": 10,
|
|
||||||
"SessionIdleTimeoutInMinutes": 43200,
|
|
||||||
"WebsocketSecurePort": 443,
|
|
||||||
"WebsocketPort": 80,
|
|
||||||
"WebserverMode": "gzip",
|
|
||||||
"EnableGifPicker": true,
|
|
||||||
"GfycatAPIKey": "2_KtH_W5",
|
|
||||||
"GfycatAPISecret": "3wLVZPiswc3DnaiaFoLkDvB4X0IV6CpMkj4tf2inJRsBY6-FnkT08zGmppWFgeof",
|
|
||||||
"EnableCustomEmoji": true,
|
|
||||||
"EnableEmojiPicker": true,
|
|
||||||
"PostEditTimeLimit": -1,
|
|
||||||
"TimeBetweenUserTypingUpdatesMilliseconds": 5000,
|
|
||||||
"EnablePostSearch": true,
|
|
||||||
"EnableFileSearch": true,
|
|
||||||
"MinimumHashtagLength": 3,
|
|
||||||
"EnableUserTypingMessages": true,
|
|
||||||
"EnableChannelViewedMessages": true,
|
|
||||||
"EnableUserStatuses": true,
|
|
||||||
"ExperimentalEnableAuthenticationTransfer": true,
|
|
||||||
"ClusterLogTimeoutMilliseconds": 2000,
|
|
||||||
"EnablePreviewFeatures": true,
|
|
||||||
"EnableTutorial": true,
|
|
||||||
"EnableOnboardingFlow": true,
|
|
||||||
"ExperimentalEnableDefaultChannelLeaveJoinMessages": true,
|
|
||||||
"ExperimentalGroupUnreadChannels": "disabled",
|
|
||||||
"EnableAPITeamDeletion": false,
|
|
||||||
"EnableAPIUserDeletion": false,
|
|
||||||
"ExperimentalEnableHardenedMode": false,
|
|
||||||
"ExperimentalStrictCSRFEnforcement": false,
|
|
||||||
"EnableEmailInvitations": false,
|
|
||||||
"DisableBotsWhenOwnerIsDeactivated": true,
|
|
||||||
"EnableBotAccountCreation": false,
|
|
||||||
"EnableSVGs": false,
|
|
||||||
"EnableLatex": false,
|
|
||||||
"EnableInlineLatex": true,
|
|
||||||
"EnableAPIChannelDeletion": false,
|
|
||||||
"EnableLocalMode": false,
|
|
||||||
"LocalModeSocketLocation": "/var/tmp/mattermost_local.socket",
|
|
||||||
"EnableAWSMetering": false,
|
|
||||||
"SplitKey": "",
|
|
||||||
"FeatureFlagSyncIntervalSeconds": 30,
|
|
||||||
"DebugSplit": false,
|
|
||||||
"ThreadAutoFollow": true,
|
|
||||||
"CollapsedThreads": "always_on",
|
|
||||||
"ManagedResourcePaths": "",
|
|
||||||
"EnableCustomGroups": true
|
|
||||||
},
|
|
||||||
"TeamSettings": {
|
|
||||||
"SiteName": "Mattermost",
|
|
||||||
"MaxUsersPerTeam": 50,
|
|
||||||
"EnableUserCreation": true,
|
|
||||||
"EnableOpenServer": false,
|
|
||||||
"EnableUserDeactivation": false,
|
|
||||||
"RestrictCreationToDomains": "",
|
|
||||||
"EnableCustomUserStatuses": true,
|
|
||||||
"EnableCustomBrand": false,
|
|
||||||
"CustomBrandText": "",
|
|
||||||
"CustomDescriptionText": "",
|
|
||||||
"RestrictDirectMessage": "any",
|
|
||||||
"UserStatusAwayTimeout": 300,
|
|
||||||
"MaxChannelsPerTeam": 2000,
|
|
||||||
"MaxNotificationsPerChannel": 1000,
|
|
||||||
"EnableConfirmNotificationsToChannel": true,
|
|
||||||
"TeammateNameDisplay": "username",
|
|
||||||
"ExperimentalViewArchivedChannels": true,
|
|
||||||
"ExperimentalEnableAutomaticReplies": false,
|
|
||||||
"LockTeammateNameDisplay": false,
|
|
||||||
"ExperimentalPrimaryTeam": "",
|
|
||||||
"ExperimentalDefaultChannels": []
|
|
||||||
},
|
|
||||||
"ClientRequirements": {
|
|
||||||
"AndroidLatestVersion": "",
|
|
||||||
"AndroidMinVersion": "",
|
|
||||||
"IosLatestVersion": "",
|
|
||||||
"IosMinVersion": ""
|
|
||||||
},
|
|
||||||
"SqlSettings": {
|
|
||||||
"DriverName": "postgres",
|
|
||||||
"DataSource": "postgres://mmuser:mmtest@localhost/mattermost?sslmode=disable\u0026connect_timeout=10\u0026binary_parameters=yes",
|
|
||||||
"DataSourceReplicas": [],
|
|
||||||
"DataSourceSearchReplicas": [],
|
|
||||||
"MaxIdleConns": 20,
|
|
||||||
"ConnMaxLifetimeMilliseconds": 3600000,
|
|
||||||
"ConnMaxIdleTimeMilliseconds": 300000,
|
|
||||||
"MaxOpenConns": 300,
|
|
||||||
"Trace": false,
|
|
||||||
"AtRestEncryptKey": "",
|
|
||||||
"QueryTimeout": 30,
|
|
||||||
"DisableDatabaseSearch": false,
|
|
||||||
"MigrationsStatementTimeoutSeconds": 100000,
|
|
||||||
"ReplicaLagSettings": []
|
|
||||||
},
|
|
||||||
"LogSettings": {
|
|
||||||
"EnableConsole": true,
|
|
||||||
"ConsoleLevel": "INFO",
|
|
||||||
"ConsoleJson": true,
|
|
||||||
"EnableColor": false,
|
|
||||||
"EnableFile": true,
|
|
||||||
"FileLevel": "INFO",
|
|
||||||
"FileJson": true,
|
|
||||||
"FileLocation": "",
|
|
||||||
"EnableWebhookDebugging": true,
|
|
||||||
"EnableDiagnostics": true,
|
|
||||||
"EnableSentry": true,
|
|
||||||
"AdvancedLoggingConfig": ""
|
|
||||||
},
|
|
||||||
"ExperimentalAuditSettings": {
|
|
||||||
"FileEnabled": false,
|
|
||||||
"FileName": "",
|
|
||||||
"FileMaxSizeMB": 100,
|
|
||||||
"FileMaxAgeDays": 0,
|
|
||||||
"FileMaxBackups": 0,
|
|
||||||
"FileCompress": false,
|
|
||||||
"FileMaxQueueSize": 1000,
|
|
||||||
"AdvancedLoggingConfig": ""
|
|
||||||
},
|
|
||||||
"NotificationLogSettings": {
|
|
||||||
"EnableConsole": true,
|
|
||||||
"ConsoleLevel": "INFO",
|
|
||||||
"ConsoleJson": true,
|
|
||||||
"EnableColor": false,
|
|
||||||
"EnableFile": true,
|
|
||||||
"FileLevel": "INFO",
|
|
||||||
"FileJson": true,
|
|
||||||
"FileLocation": "",
|
|
||||||
"AdvancedLoggingConfig": ""
|
|
||||||
},
|
|
||||||
"PasswordSettings": {
|
|
||||||
"MinimumLength": 8,
|
|
||||||
"Lowercase": false,
|
|
||||||
"Number": false,
|
|
||||||
"Uppercase": false,
|
|
||||||
"Symbol": false
|
|
||||||
},
|
|
||||||
"FileSettings": {
|
|
||||||
"EnableFileAttachments": true,
|
|
||||||
"EnableMobileUpload": true,
|
|
||||||
"EnableMobileDownload": true,
|
|
||||||
"MaxFileSize": 104857600,
|
|
||||||
"MaxImageResolution": 33177600,
|
|
||||||
"MaxImageDecoderConcurrency": -1,
|
|
||||||
"DriverName": "local",
|
|
||||||
"Directory": "./data/",
|
|
||||||
"EnablePublicLink": false,
|
|
||||||
"ExtractContent": true,
|
|
||||||
"ArchiveRecursion": false,
|
|
||||||
"PublicLinkSalt": "",
|
|
||||||
"InitialFont": "nunito-bold.ttf",
|
|
||||||
"AmazonS3AccessKeyId": "",
|
|
||||||
"AmazonS3SecretAccessKey": "",
|
|
||||||
"AmazonS3Bucket": "",
|
|
||||||
"AmazonS3PathPrefix": "",
|
|
||||||
"AmazonS3Region": "",
|
|
||||||
"AmazonS3Endpoint": "s3.amazonaws.com",
|
|
||||||
"AmazonS3SSL": true,
|
|
||||||
"AmazonS3SignV2": false,
|
|
||||||
"AmazonS3SSE": false,
|
|
||||||
"AmazonS3Trace": false,
|
|
||||||
"AmazonS3RequestTimeoutMilliseconds": 30000
|
|
||||||
},
|
|
||||||
"EmailSettings": {
|
|
||||||
"EnableSignUpWithEmail": true,
|
|
||||||
"EnableSignInWithEmail": true,
|
|
||||||
"EnableSignInWithUsername": true,
|
|
||||||
"SendEmailNotifications": false,
|
|
||||||
"UseChannelInEmailNotifications": false,
|
|
||||||
"RequireEmailVerification": false,
|
|
||||||
"FeedbackName": "",
|
|
||||||
"FeedbackEmail": "",
|
|
||||||
"ReplyToAddress": "",
|
|
||||||
"FeedbackOrganization": "",
|
|
||||||
"EnableSMTPAuth": false,
|
|
||||||
"SMTPUsername": "",
|
|
||||||
"SMTPPassword": "",
|
|
||||||
"SMTPServer": "",
|
|
||||||
"SMTPPort": "10025",
|
|
||||||
"SMTPServerTimeout": 10,
|
|
||||||
"ConnectionSecurity": "",
|
|
||||||
"SendPushNotifications": true,
|
|
||||||
"PushNotificationServer": "https://push-test.mattermost.com",
|
|
||||||
"PushNotificationContents": "full",
|
|
||||||
"PushNotificationBuffer": 1000,
|
|
||||||
"EnableEmailBatching": false,
|
|
||||||
"EmailBatchingBufferSize": 256,
|
|
||||||
"EmailBatchingInterval": 30,
|
|
||||||
"EnablePreviewModeBanner": true,
|
|
||||||
"SkipServerCertificateVerification": false,
|
|
||||||
"EmailNotificationContentsType": "full",
|
|
||||||
"LoginButtonColor": "#0000",
|
|
||||||
"LoginButtonBorderColor": "#2389D7",
|
|
||||||
"LoginButtonTextColor": "#2389D7",
|
|
||||||
"EnableInactivityEmail": true
|
|
||||||
},
|
|
||||||
"RateLimitSettings": {
|
|
||||||
"Enable": false,
|
|
||||||
"PerSec": 10,
|
|
||||||
"MaxBurst": 100,
|
|
||||||
"MemoryStoreSize": 10000,
|
|
||||||
"VaryByRemoteAddr": true,
|
|
||||||
"VaryByUser": false,
|
|
||||||
"VaryByHeader": ""
|
|
||||||
},
|
|
||||||
"PrivacySettings": {
|
|
||||||
"ShowEmailAddress": true,
|
|
||||||
"ShowFullName": true
|
|
||||||
},
|
|
||||||
"SupportSettings": {
|
|
||||||
"TermsOfServiceLink": "https://mattermost.com/terms-of-use/",
|
|
||||||
"PrivacyPolicyLink": "https://mattermost.com/privacy-policy/",
|
|
||||||
"AboutLink": "https://docs.mattermost.com/about/product.html/",
|
|
||||||
"HelpLink": "https://mattermost.com/default-help/",
|
|
||||||
"ReportAProblemLink": "https://mattermost.com/default-report-a-problem/",
|
|
||||||
"SupportEmail": "",
|
|
||||||
"CustomTermsOfServiceEnabled": false,
|
|
||||||
"CustomTermsOfServiceReAcceptancePeriod": 365,
|
|
||||||
"EnableAskCommunityLink": true
|
|
||||||
},
|
|
||||||
"AnnouncementSettings": {
|
|
||||||
"EnableBanner": false,
|
|
||||||
"BannerText": "",
|
|
||||||
"BannerColor": "#f2a93b",
|
|
||||||
"BannerTextColor": "#333333",
|
|
||||||
"AllowBannerDismissal": true,
|
|
||||||
"AdminNoticesEnabled": true,
|
|
||||||
"UserNoticesEnabled": true,
|
|
||||||
"NoticesURL": "https://notices.mattermost.com/",
|
|
||||||
"NoticesFetchFrequency": 3600,
|
|
||||||
"NoticesSkipCache": false
|
|
||||||
},
|
|
||||||
"ThemeSettings": {
|
|
||||||
"EnableThemeSelection": true,
|
|
||||||
"DefaultTheme": "default",
|
|
||||||
"AllowCustomThemes": true,
|
|
||||||
"AllowedThemes": []
|
|
||||||
},
|
|
||||||
"GitLabSettings": {
|
|
||||||
"Enable": false,
|
|
||||||
"Secret": "",
|
|
||||||
"Id": "",
|
|
||||||
"Scope": "",
|
|
||||||
"AuthEndpoint": "",
|
|
||||||
"TokenEndpoint": "",
|
|
||||||
"UserAPIEndpoint": "",
|
|
||||||
"DiscoveryEndpoint": "",
|
|
||||||
"ButtonText": "",
|
|
||||||
"ButtonColor": ""
|
|
||||||
},
|
|
||||||
"GoogleSettings": {
|
|
||||||
"Enable": false,
|
|
||||||
"Secret": "",
|
|
||||||
"Id": "",
|
|
||||||
"Scope": "profile email",
|
|
||||||
"AuthEndpoint": "https://accounts.google.com/o/oauth2/v2/auth",
|
|
||||||
"TokenEndpoint": "https://www.googleapis.com/oauth2/v4/token",
|
|
||||||
"UserAPIEndpoint": "https://people.googleapis.com/v1/people/me?personFields=names,emailAddresses,nicknames,metadata",
|
|
||||||
"DiscoveryEndpoint": "",
|
|
||||||
"ButtonText": "",
|
|
||||||
"ButtonColor": ""
|
|
||||||
},
|
|
||||||
"Office365Settings": {
|
|
||||||
"Enable": false,
|
|
||||||
"Secret": "",
|
|
||||||
"Id": "",
|
|
||||||
"Scope": "User.Read",
|
|
||||||
"AuthEndpoint": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize",
|
|
||||||
"TokenEndpoint": "https://login.microsoftonline.com/common/oauth2/v2.0/token",
|
|
||||||
"UserAPIEndpoint": "https://graph.microsoft.com/v1.0/me",
|
|
||||||
"DiscoveryEndpoint": "",
|
|
||||||
"DirectoryId": ""
|
|
||||||
},
|
|
||||||
"OpenIdSettings": {
|
|
||||||
"Enable": false,
|
|
||||||
"Secret": "",
|
|
||||||
"Id": "",
|
|
||||||
"Scope": "profile openid email",
|
|
||||||
"AuthEndpoint": "",
|
|
||||||
"TokenEndpoint": "",
|
|
||||||
"UserAPIEndpoint": "",
|
|
||||||
"DiscoveryEndpoint": "",
|
|
||||||
"ButtonText": "",
|
|
||||||
"ButtonColor": "#145DBF"
|
|
||||||
},
|
|
||||||
"LdapSettings": {
|
|
||||||
"Enable": false,
|
|
||||||
"EnableSync": false,
|
|
||||||
"LdapServer": "",
|
|
||||||
"LdapPort": 389,
|
|
||||||
"ConnectionSecurity": "",
|
|
||||||
"BaseDN": "",
|
|
||||||
"BindUsername": "",
|
|
||||||
"BindPassword": "",
|
|
||||||
"UserFilter": "",
|
|
||||||
"GroupFilter": "",
|
|
||||||
"GuestFilter": "",
|
|
||||||
"EnableAdminFilter": false,
|
|
||||||
"AdminFilter": "",
|
|
||||||
"GroupDisplayNameAttribute": "",
|
|
||||||
"GroupIdAttribute": "",
|
|
||||||
"FirstNameAttribute": "",
|
|
||||||
"LastNameAttribute": "",
|
|
||||||
"EmailAttribute": "",
|
|
||||||
"UsernameAttribute": "",
|
|
||||||
"NicknameAttribute": "",
|
|
||||||
"IdAttribute": "",
|
|
||||||
"PositionAttribute": "",
|
|
||||||
"LoginIdAttribute": "",
|
|
||||||
"PictureAttribute": "",
|
|
||||||
"SyncIntervalMinutes": 60,
|
|
||||||
"SkipCertificateVerification": false,
|
|
||||||
"PublicCertificateFile": "",
|
|
||||||
"PrivateKeyFile": "",
|
|
||||||
"QueryTimeout": 60,
|
|
||||||
"MaxPageSize": 0,
|
|
||||||
"LoginFieldName": "",
|
|
||||||
"LoginButtonColor": "#0000",
|
|
||||||
"LoginButtonBorderColor": "#2389D7",
|
|
||||||
"LoginButtonTextColor": "#2389D7",
|
|
||||||
"Trace": false
|
|
||||||
},
|
|
||||||
"ComplianceSettings": {
|
|
||||||
"Enable": false,
|
|
||||||
"Directory": "./data/",
|
|
||||||
"EnableDaily": false,
|
|
||||||
"BatchSize": 30000
|
|
||||||
},
|
|
||||||
"LocalizationSettings": {
|
|
||||||
"DefaultServerLocale": "en",
|
|
||||||
"DefaultClientLocale": "en",
|
|
||||||
"AvailableLocales": ""
|
|
||||||
},
|
|
||||||
"SamlSettings": {
|
|
||||||
"Enable": false,
|
|
||||||
"EnableSyncWithLdap": false,
|
|
||||||
"EnableSyncWithLdapIncludeAuth": false,
|
|
||||||
"IgnoreGuestsLdapSync": false,
|
|
||||||
"Verify": true,
|
|
||||||
"Encrypt": true,
|
|
||||||
"SignRequest": false,
|
|
||||||
"IdpURL": "",
|
|
||||||
"IdpDescriptorURL": "",
|
|
||||||
"IdpMetadataURL": "",
|
|
||||||
"ServiceProviderIdentifier": "",
|
|
||||||
"AssertionConsumerServiceURL": "",
|
|
||||||
"SignatureAlgorithm": "RSAwithSHA1",
|
|
||||||
"CanonicalAlgorithm": "Canonical1.0",
|
|
||||||
"ScopingIDPProviderId": "",
|
|
||||||
"ScopingIDPName": "",
|
|
||||||
"IdpCertificateFile": "",
|
|
||||||
"PublicCertificateFile": "",
|
|
||||||
"PrivateKeyFile": "",
|
|
||||||
"IdAttribute": "",
|
|
||||||
"GuestAttribute": "",
|
|
||||||
"EnableAdminAttribute": false,
|
|
||||||
"AdminAttribute": "",
|
|
||||||
"FirstNameAttribute": "",
|
|
||||||
"LastNameAttribute": "",
|
|
||||||
"EmailAttribute": "",
|
|
||||||
"UsernameAttribute": "",
|
|
||||||
"NicknameAttribute": "",
|
|
||||||
"LocaleAttribute": "",
|
|
||||||
"PositionAttribute": "",
|
|
||||||
"LoginButtonText": "SAML",
|
|
||||||
"LoginButtonColor": "#34a28b",
|
|
||||||
"LoginButtonBorderColor": "#2389D7",
|
|
||||||
"LoginButtonTextColor": "#ffffff"
|
|
||||||
},
|
|
||||||
"NativeAppSettings": {
|
|
||||||
"AppCustomURLSchemes": [
|
|
||||||
"mmauth://",
|
|
||||||
"mmauthbeta://"
|
|
||||||
],
|
|
||||||
"AppDownloadLink": "https://mattermost.com/download/#mattermostApps",
|
|
||||||
"AndroidAppDownloadLink": "https://mattermost.com/mattermost-android-app/",
|
|
||||||
"IosAppDownloadLink": "https://mattermost.com/mattermost-ios-app/"
|
|
||||||
},
|
|
||||||
"ClusterSettings": {
|
|
||||||
"Enable": false,
|
|
||||||
"ClusterName": "",
|
|
||||||
"OverrideHostname": "",
|
|
||||||
"NetworkInterface": "",
|
|
||||||
"BindAddress": "",
|
|
||||||
"AdvertiseAddress": "",
|
|
||||||
"UseIPAddress": true,
|
|
||||||
"EnableGossipCompression": true,
|
|
||||||
"EnableExperimentalGossipEncryption": false,
|
|
||||||
"ReadOnlyConfig": true,
|
|
||||||
"GossipPort": 8074,
|
|
||||||
"StreamingPort": 8075,
|
|
||||||
"MaxIdleConns": 100,
|
|
||||||
"MaxIdleConnsPerHost": 128,
|
|
||||||
"IdleConnTimeoutMilliseconds": 90000
|
|
||||||
},
|
|
||||||
"MetricsSettings": {
|
|
||||||
"Enable": false,
|
|
||||||
"BlockProfileRate": 0,
|
|
||||||
"ListenAddress": ":8067"
|
|
||||||
},
|
|
||||||
"ExperimentalSettings": {
|
|
||||||
"ClientSideCertEnable": false,
|
|
||||||
"ClientSideCertCheck": "secondary",
|
|
||||||
"LinkMetadataTimeoutMilliseconds": 5000,
|
|
||||||
"RestrictSystemAdmin": false,
|
|
||||||
"UseNewSAMLLibrary": false,
|
|
||||||
"CloudBilling": false,
|
|
||||||
"EnableSharedChannels": false,
|
|
||||||
"EnableRemoteClusterService": false,
|
|
||||||
"EnableAppBar": false
|
|
||||||
},
|
|
||||||
"AnalyticsSettings": {
|
|
||||||
"MaxUsersForStatistics": 2500
|
|
||||||
},
|
|
||||||
"ElasticsearchSettings": {
|
|
||||||
"ConnectionURL": "http://localhost:9200",
|
|
||||||
"Username": "elastic",
|
|
||||||
"Password": "changeme",
|
|
||||||
"EnableIndexing": false,
|
|
||||||
"EnableSearching": false,
|
|
||||||
"EnableAutocomplete": false,
|
|
||||||
"Sniff": true,
|
|
||||||
"PostIndexReplicas": 1,
|
|
||||||
"PostIndexShards": 1,
|
|
||||||
"ChannelIndexReplicas": 1,
|
|
||||||
"ChannelIndexShards": 1,
|
|
||||||
"UserIndexReplicas": 1,
|
|
||||||
"UserIndexShards": 1,
|
|
||||||
"AggregatePostsAfterDays": 365,
|
|
||||||
"PostsAggregatorJobStartTime": "03:00",
|
|
||||||
"IndexPrefix": "",
|
|
||||||
"LiveIndexingBatchSize": 1,
|
|
||||||
"BatchSize": 10000,
|
|
||||||
"RequestTimeoutSeconds": 30,
|
|
||||||
"SkipTLSVerification": false,
|
|
||||||
"Trace": ""
|
|
||||||
},
|
|
||||||
"BleveSettings": {
|
|
||||||
"IndexDir": "",
|
|
||||||
"EnableIndexing": false,
|
|
||||||
"EnableSearching": false,
|
|
||||||
"EnableAutocomplete": false,
|
|
||||||
"BatchSize": 10000
|
|
||||||
},
|
|
||||||
"DataRetentionSettings": {
|
|
||||||
"EnableMessageDeletion": false,
|
|
||||||
"EnableFileDeletion": false,
|
|
||||||
"EnableBoardsDeletion": false,
|
|
||||||
"MessageRetentionDays": 365,
|
|
||||||
"FileRetentionDays": 365,
|
|
||||||
"BoardsRetentionDays": 365,
|
|
||||||
"DeletionJobStartTime": "02:00",
|
|
||||||
"BatchSize": 3000
|
|
||||||
},
|
|
||||||
"MessageExportSettings": {
|
|
||||||
"EnableExport": false,
|
|
||||||
"ExportFormat": "actiance",
|
|
||||||
"DailyRunTime": "01:00",
|
|
||||||
"ExportFromTimestamp": 0,
|
|
||||||
"BatchSize": 10000,
|
|
||||||
"DownloadExportResults": false,
|
|
||||||
"GlobalRelaySettings": {
|
|
||||||
"CustomerType": "A9",
|
|
||||||
"SMTPUsername": "",
|
|
||||||
"SMTPPassword": "",
|
|
||||||
"EmailAddress": "",
|
|
||||||
"SMTPServerTimeout": 1800
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"JobSettings": {
|
|
||||||
"RunJobs": true,
|
|
||||||
"RunScheduler": true,
|
|
||||||
"CleanupJobsThresholdDays": -1,
|
|
||||||
"CleanupConfigThresholdDays": -1
|
|
||||||
},
|
|
||||||
"PluginSettings": {
|
|
||||||
"Enable": true,
|
|
||||||
"EnableUploads": false,
|
|
||||||
"AllowInsecureDownloadURL": false,
|
|
||||||
"EnableHealthCheck": true,
|
|
||||||
"Directory": "./plugins",
|
|
||||||
"ClientDirectory": "./client/plugins",
|
|
||||||
"Plugins": {},
|
|
||||||
"PluginStates": {
|
|
||||||
"com.mattermost.apps": {
|
|
||||||
"Enable": true
|
|
||||||
},
|
|
||||||
"com.mattermost.calls": {
|
|
||||||
"Enable": true
|
|
||||||
},
|
|
||||||
"com.mattermost.nps": {
|
|
||||||
"Enable": true
|
|
||||||
},
|
|
||||||
"focalboard": {
|
|
||||||
"Enable": true
|
|
||||||
},
|
|
||||||
"playbooks": {
|
|
||||||
"Enable": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"EnableMarketplace": true,
|
|
||||||
"EnableRemoteMarketplace": true,
|
|
||||||
"AutomaticPrepackagedPlugins": true,
|
|
||||||
"RequirePluginSignature": false,
|
|
||||||
"MarketplaceURL": "https://api.integrations.mattermost.com",
|
|
||||||
"SignaturePublicKeyFiles": [],
|
|
||||||
"ChimeraOAuthProxyURL": ""
|
|
||||||
},
|
|
||||||
"DisplaySettings": {
|
|
||||||
"CustomURLSchemes": [],
|
|
||||||
"ExperimentalTimezone": true
|
|
||||||
},
|
|
||||||
"GuestAccountsSettings": {
|
|
||||||
"Enable": false,
|
|
||||||
"AllowEmailAccounts": true,
|
|
||||||
"EnforceMultifactorAuthentication": false,
|
|
||||||
"RestrictCreationToDomains": ""
|
|
||||||
},
|
|
||||||
"ImageProxySettings": {
|
|
||||||
"Enable": false,
|
|
||||||
"ImageProxyType": "local",
|
|
||||||
"RemoteImageProxyURL": "",
|
|
||||||
"RemoteImageProxyOptions": ""
|
|
||||||
},
|
|
||||||
"CloudSettings": {
|
|
||||||
"CWSURL": "https://customers.mattermost.com",
|
|
||||||
"CWSAPIURL": "https://portal.internal.prod.cloud.mattermost.com"
|
|
||||||
},
|
|
||||||
"FeatureFlags": {
|
|
||||||
"TestFeature": "off",
|
|
||||||
"TestBoolFeature": false,
|
|
||||||
"CollapsedThreads": true,
|
|
||||||
"EnableRemoteClusterService": false,
|
|
||||||
"AppsEnabled": true,
|
|
||||||
"PluginPlaybooks": "",
|
|
||||||
"PluginApps": "",
|
|
||||||
"PluginFocalboard": "",
|
|
||||||
"PluginCalls": "",
|
|
||||||
"PermalinkPreviews": true,
|
|
||||||
"CallsMobile": false,
|
|
||||||
"CallsEnabled": true,
|
|
||||||
"BoardsFeatureFlags": "",
|
|
||||||
"GuidedChannelCreation": false,
|
|
||||||
"InviteToTeam": "none",
|
|
||||||
"CustomGroups": true,
|
|
||||||
"BoardsDataRetention": false,
|
|
||||||
"NormalizeLdapDNs": false,
|
|
||||||
"EnableInactivityCheckJob": true,
|
|
||||||
"UseCaseOnboarding": true,
|
|
||||||
"GraphQL": false,
|
|
||||||
"InsightsEnabled": true,
|
|
||||||
"CommandPalette": false,
|
|
||||||
"AdvancedTextEditor": true,
|
|
||||||
"BoardsProduct": false,
|
|
||||||
"PlanUpgradeButtonText": "upgrade"
|
|
||||||
},
|
|
||||||
"ImportSettings": {
|
|
||||||
"Directory": "./import",
|
|
||||||
"RetentionDays": 30
|
|
||||||
},
|
|
||||||
"ExportSettings": {
|
|
||||||
"Directory": "./export",
|
|
||||||
"RetentionDays": 30
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,4 +0,0 @@
|
||||||
DROP DATABASE mattermost;
|
|
||||||
CREATE DATABASE mattermost;
|
|
||||||
CREATE USER mmuser WITH PASSWORD 'mmpass';
|
|
||||||
GRANT ALL PRIVILEGES ON DATABASE mattermost to mmuser;
|
|
|
@ -1,4 +0,0 @@
|
||||||
#
|
|
||||||
# PostgreSQL Authentication Configuration for Mattermost
|
|
||||||
#
|
|
||||||
local all mattermost trust
|
|
|
@ -1,4 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
cd /opt/mattermost
|
|
||||||
./bin/mattermost --config /etc/mattermost/config.json
|
|
|
@ -1 +0,0 @@
|
||||||
../../opt/mattermost/bin/mmctl
|
|
Binary file not shown.
|
@ -1,897 +0,0 @@
|
||||||
Mattermost Licensing
|
|
||||||
|
|
||||||
SOFTWARE LICENSING
|
|
||||||
|
|
||||||
You are licensed to use compiled versions of the Mattermost platform produced by Mattermost, Inc. under an MIT LICENSE
|
|
||||||
|
|
||||||
- See MIT-COMPILED-LICENSE.md included in compiled versions for details
|
|
||||||
|
|
||||||
You may be licensed to use source code to create compiled versions not produced by Mattermost, Inc. in one of two ways:
|
|
||||||
|
|
||||||
1. Under the Free Software Foundation’s GNU AGPL v.3.0, subject to the exceptions outlined in this policy; or
|
|
||||||
2. Under a commercial license available from Mattermost, Inc. by contacting commercial@mattermost.com
|
|
||||||
|
|
||||||
You are licensed to use the source code in Admin Tools and Configuration Files (templates/, config/default.json, i18n/, model/,
|
|
||||||
plugin/ and all subdirectories thereof) under the Apache License v2.0.
|
|
||||||
|
|
||||||
We promise that we will not enforce the copyleft provisions in AGPL v3.0 against you if your application (a) does not
|
|
||||||
link to the Mattermost Platform directly, but exclusively uses the Mattermost Admin Tools and Configuration Files, and
|
|
||||||
(b) you have not modified, added to or adapted the source code of Mattermost in a way that results in the creation of
|
|
||||||
a “modified version” or “work based on” Mattermost as these terms are defined in the AGPL v3.0 license.
|
|
||||||
|
|
||||||
MATTERMOST TRADEMARK GUIDELINES
|
|
||||||
|
|
||||||
Your use of the mark Mattermost is subject to Mattermost, Inc's prior written approval and our organization’s Trademark
|
|
||||||
Standards of Use at https://mattermost.com/trademark-standards-of-use/. For trademark approval or any questions
|
|
||||||
you have about using these trademarks, please email trademark@mattermost.com
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Apache License
|
|
||||||
Version 2.0, January 2004
|
|
||||||
http://www.apache.org/licenses/
|
|
||||||
|
|
||||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
||||||
|
|
||||||
1. Definitions.
|
|
||||||
|
|
||||||
"License" shall mean the terms and conditions for use, reproduction,
|
|
||||||
and distribution as defined by Sections 1 through 9 of this document.
|
|
||||||
|
|
||||||
"Licensor" shall mean the copyright owner or entity authorized by
|
|
||||||
the copyright owner that is granting the License.
|
|
||||||
|
|
||||||
"Legal Entity" shall mean the union of the acting entity and all
|
|
||||||
other entities that control, are controlled by, or are under common
|
|
||||||
control with that entity. For the purposes of this definition,
|
|
||||||
"control" means (i) the power, direct or indirect, to cause the
|
|
||||||
direction or management of such entity, whether by contract or
|
|
||||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
||||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
||||||
|
|
||||||
"You" (or "Your") shall mean an individual or Legal Entity
|
|
||||||
exercising permissions granted by this License.
|
|
||||||
|
|
||||||
"Source" form shall mean the preferred form for making modifications,
|
|
||||||
including but not limited to software source code, documentation
|
|
||||||
source, and configuration files.
|
|
||||||
|
|
||||||
"Object" form shall mean any form resulting from mechanical
|
|
||||||
transformation or translation of a Source form, including but
|
|
||||||
not limited to compiled object code, generated documentation,
|
|
||||||
and conversions to other media types.
|
|
||||||
|
|
||||||
"Work" shall mean the work of authorship, whether in Source or
|
|
||||||
Object form, made available under the License, as indicated by a
|
|
||||||
copyright notice that is included in or attached to the work
|
|
||||||
(an example is provided in the Appendix below).
|
|
||||||
|
|
||||||
"Derivative Works" shall mean any work, whether in Source or Object
|
|
||||||
form, that is based on (or derived from) the Work and for which the
|
|
||||||
editorial revisions, annotations, elaborations, or other modifications
|
|
||||||
represent, as a whole, an original work of authorship. For the purposes
|
|
||||||
of this License, Derivative Works shall not include works that remain
|
|
||||||
separable from, or merely link (or bind by name) to the interfaces of,
|
|
||||||
the Work and Derivative Works thereof.
|
|
||||||
|
|
||||||
"Contribution" shall mean any work of authorship, including
|
|
||||||
the original version of the Work and any modifications or additions
|
|
||||||
to that Work or Derivative Works thereof, that is intentionally
|
|
||||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
||||||
or by an individual or Legal Entity authorized to submit on behalf of
|
|
||||||
the copyright owner. For the purposes of this definition, "submitted"
|
|
||||||
means any form of electronic, verbal, or written communication sent
|
|
||||||
to the Licensor or its representatives, including but not limited to
|
|
||||||
communication on electronic mailing lists, source code control systems,
|
|
||||||
and issue tracking systems that are managed by, or on behalf of, the
|
|
||||||
Licensor for the purpose of discussing and improving the Work, but
|
|
||||||
excluding communication that is conspicuously marked or otherwise
|
|
||||||
designated in writing by the copyright owner as "Not a Contribution."
|
|
||||||
|
|
||||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
||||||
on behalf of whom a Contribution has been received by Licensor and
|
|
||||||
subsequently incorporated within the Work.
|
|
||||||
|
|
||||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
||||||
this License, each Contributor hereby grants to You a perpetual,
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
||||||
copyright license to reproduce, prepare Derivative Works of,
|
|
||||||
publicly display, publicly perform, sublicense, and distribute the
|
|
||||||
Work and such Derivative Works in Source or Object form.
|
|
||||||
|
|
||||||
3. Grant of Patent License. Subject to the terms and conditions of
|
|
||||||
this License, each Contributor hereby grants to You a perpetual,
|
|
||||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
||||||
(except as stated in this section) patent license to make, have made,
|
|
||||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
||||||
where such license applies only to those patent claims licensable
|
|
||||||
by such Contributor that are necessarily infringed by their
|
|
||||||
Contribution(s) alone or by combination of their Contribution(s)
|
|
||||||
with the Work to which such Contribution(s) was submitted. If You
|
|
||||||
institute patent litigation against any entity (including a
|
|
||||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
||||||
or a Contribution incorporated within the Work constitutes direct
|
|
||||||
or contributory patent infringement, then any patent licenses
|
|
||||||
granted to You under this License for that Work shall terminate
|
|
||||||
as of the date such litigation is filed.
|
|
||||||
|
|
||||||
4. Redistribution. You may reproduce and distribute copies of the
|
|
||||||
Work or Derivative Works thereof in any medium, with or without
|
|
||||||
modifications, and in Source or Object form, provided that You
|
|
||||||
meet the following conditions:
|
|
||||||
|
|
||||||
(a) You must give any other recipients of the Work or
|
|
||||||
Derivative Works a copy of this License; and
|
|
||||||
|
|
||||||
(b) You must cause any modified files to carry prominent notices
|
|
||||||
stating that You changed the files; and
|
|
||||||
|
|
||||||
(c) You must retain, in the Source form of any Derivative Works
|
|
||||||
that You distribute, all copyright, patent, trademark, and
|
|
||||||
attribution notices from the Source form of the Work,
|
|
||||||
excluding those notices that do not pertain to any part of
|
|
||||||
the Derivative Works; and
|
|
||||||
|
|
||||||
(d) If the Work includes a "NOTICE" text file as part of its
|
|
||||||
distribution, then any Derivative Works that You distribute must
|
|
||||||
include a readable copy of the attribution notices contained
|
|
||||||
within such NOTICE file, excluding those notices that do not
|
|
||||||
pertain to any part of the Derivative Works, in at least one
|
|
||||||
of the following places: within a NOTICE text file distributed
|
|
||||||
as part of the Derivative Works; within the Source form or
|
|
||||||
documentation, if provided along with the Derivative Works; or,
|
|
||||||
within a display generated by the Derivative Works, if and
|
|
||||||
wherever such third-party notices normally appear. The contents
|
|
||||||
of the NOTICE file are for informational purposes only and
|
|
||||||
do not modify the License. You may add Your own attribution
|
|
||||||
notices within Derivative Works that You distribute, alongside
|
|
||||||
or as an addendum to the NOTICE text from the Work, provided
|
|
||||||
that such additional attribution notices cannot be construed
|
|
||||||
as modifying the License.
|
|
||||||
|
|
||||||
You may add Your own copyright statement to Your modifications and
|
|
||||||
may provide additional or different license terms and conditions
|
|
||||||
for use, reproduction, or distribution of Your modifications, or
|
|
||||||
for any such Derivative Works as a whole, provided Your use,
|
|
||||||
reproduction, and distribution of the Work otherwise complies with
|
|
||||||
the conditions stated in this License.
|
|
||||||
|
|
||||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
||||||
any Contribution intentionally submitted for inclusion in the Work
|
|
||||||
by You to the Licensor shall be under the terms and conditions of
|
|
||||||
this License, without any additional terms or conditions.
|
|
||||||
Notwithstanding the above, nothing herein shall supersede or modify
|
|
||||||
the terms of any separate license agreement you may have executed
|
|
||||||
with Licensor regarding such Contributions.
|
|
||||||
|
|
||||||
6. Trademarks. This License does not grant permission to use the trade
|
|
||||||
names, trademarks, service marks, or product names of the Licensor,
|
|
||||||
except as required for reasonable and customary use in describing the
|
|
||||||
origin of the Work and reproducing the content of the NOTICE file.
|
|
||||||
|
|
||||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
||||||
agreed to in writing, Licensor provides the Work (and each
|
|
||||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
||||||
implied, including, without limitation, any warranties or conditions
|
|
||||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
||||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
||||||
appropriateness of using or redistributing the Work and assume any
|
|
||||||
risks associated with Your exercise of permissions under this License.
|
|
||||||
|
|
||||||
8. Limitation of Liability. In no event and under no legal theory,
|
|
||||||
whether in tort (including negligence), contract, or otherwise,
|
|
||||||
unless required by applicable law (such as deliberate and grossly
|
|
||||||
negligent acts) or agreed to in writing, shall any Contributor be
|
|
||||||
liable to You for damages, including any direct, indirect, special,
|
|
||||||
incidental, or consequential damages of any character arising as a
|
|
||||||
result of this License or out of the use or inability to use the
|
|
||||||
Work (including but not limited to damages for loss of goodwill,
|
|
||||||
work stoppage, computer failure or malfunction, or any and all
|
|
||||||
other commercial damages or losses), even if such Contributor
|
|
||||||
has been advised of the possibility of such damages.
|
|
||||||
|
|
||||||
9. Accepting Warranty or Additional Liability. While redistributing
|
|
||||||
the Work or Derivative Works thereof, You may choose to offer,
|
|
||||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
||||||
or other liability obligations and/or rights consistent with this
|
|
||||||
License. However, in accepting such obligations, You may act only
|
|
||||||
on Your own behalf and on Your sole responsibility, not on behalf
|
|
||||||
of any other Contributor, and only if You agree to indemnify,
|
|
||||||
defend, and hold each Contributor harmless for any liability
|
|
||||||
incurred by, or claims asserted against, such Contributor by reason
|
|
||||||
of your accepting any such warranty or additional liability.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
APPENDIX: How to apply the Apache License to your work.
|
|
||||||
|
|
||||||
To apply the Apache License to your work, attach the following
|
|
||||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
||||||
replaced with your own identifying information. (Don't include
|
|
||||||
the brackets!) The text should be enclosed in the appropriate
|
|
||||||
comment syntax for the file format. We also recommend that a
|
|
||||||
file or class name and description of purpose be included on the
|
|
||||||
same "printed page" as the copyright notice for easier
|
|
||||||
identification within third-party archives.
|
|
||||||
|
|
||||||
Copyright [yyyy] [name of copyright owner]
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
The software is released under the terms of the GNU Affero General Public
|
|
||||||
License, version 3.
|
|
||||||
|
|
||||||
GNU AFFERO GENERAL PUBLIC LICENSE
|
|
||||||
Version 3, 19 November 2007
|
|
||||||
|
|
||||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
|
||||||
of this license document, but changing it is not allowed.
|
|
||||||
|
|
||||||
Preamble
|
|
||||||
|
|
||||||
The GNU Affero General Public License is a free, copyleft license for
|
|
||||||
software and other kinds of works, specifically designed to ensure
|
|
||||||
cooperation with the community in the case of network server software.
|
|
||||||
|
|
||||||
The licenses for most software and other practical works are designed
|
|
||||||
to take away your freedom to share and change the works. By contrast,
|
|
||||||
our General Public Licenses are intended to guarantee your freedom to
|
|
||||||
share and change all versions of a program--to make sure it remains free
|
|
||||||
software for all its users.
|
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom, not
|
|
||||||
price. Our General Public Licenses are designed to make sure that you
|
|
||||||
have the freedom to distribute copies of free software (and charge for
|
|
||||||
them if you wish), that you receive source code or can get it if you
|
|
||||||
want it, that you can change the software or use pieces of it in new
|
|
||||||
free programs, and that you know you can do these things.
|
|
||||||
|
|
||||||
Developers that use our General Public Licenses protect your rights
|
|
||||||
with two steps: (1) assert copyright on the software, and (2) offer
|
|
||||||
you this License which gives you legal permission to copy, distribute
|
|
||||||
and/or modify the software.
|
|
||||||
|
|
||||||
A secondary benefit of defending all users' freedom is that
|
|
||||||
improvements made in alternate versions of the program, if they
|
|
||||||
receive widespread use, become available for other developers to
|
|
||||||
incorporate. Many developers of free software are heartened and
|
|
||||||
encouraged by the resulting cooperation. However, in the case of
|
|
||||||
software used on network servers, this result may fail to come about.
|
|
||||||
The GNU General Public License permits making a modified version and
|
|
||||||
letting the public access it on a server without ever releasing its
|
|
||||||
source code to the public.
|
|
||||||
|
|
||||||
The GNU Affero General Public License is designed specifically to
|
|
||||||
ensure that, in such cases, the modified source code becomes available
|
|
||||||
to the community. It requires the operator of a network server to
|
|
||||||
provide the source code of the modified version running there to the
|
|
||||||
users of that server. Therefore, public use of a modified version, on
|
|
||||||
a publicly accessible server, gives the public access to the source
|
|
||||||
code of the modified version.
|
|
||||||
|
|
||||||
An older license, called the Affero General Public License and
|
|
||||||
published by Affero, was designed to accomplish similar goals. This is
|
|
||||||
a different license, not a version of the Affero GPL, but Affero has
|
|
||||||
released a new version of the Affero GPL which permits relicensing under
|
|
||||||
this license.
|
|
||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
|
||||||
modification follow.
|
|
||||||
|
|
||||||
TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
0. Definitions.
|
|
||||||
|
|
||||||
"This License" refers to version 3 of the GNU Affero General Public License.
|
|
||||||
|
|
||||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
|
||||||
works, such as semiconductor masks.
|
|
||||||
|
|
||||||
"The Program" refers to any copyrightable work licensed under this
|
|
||||||
License. Each licensee is addressed as "you". "Licensees" and
|
|
||||||
"recipients" may be individuals or organizations.
|
|
||||||
|
|
||||||
To "modify" a work means to copy from or adapt all or part of the work
|
|
||||||
in a fashion requiring copyright permission, other than the making of an
|
|
||||||
exact copy. The resulting work is called a "modified version" of the
|
|
||||||
earlier work or a work "based on" the earlier work.
|
|
||||||
|
|
||||||
A "covered work" means either the unmodified Program or a work based
|
|
||||||
on the Program.
|
|
||||||
|
|
||||||
To "propagate" a work means to do anything with it that, without
|
|
||||||
permission, would make you directly or secondarily liable for
|
|
||||||
infringement under applicable copyright law, except executing it on a
|
|
||||||
computer or modifying a private copy. Propagation includes copying,
|
|
||||||
distribution (with or without modification), making available to the
|
|
||||||
public, and in some countries other activities as well.
|
|
||||||
|
|
||||||
To "convey" a work means any kind of propagation that enables other
|
|
||||||
parties to make or receive copies. Mere interaction with a user through
|
|
||||||
a computer network, with no transfer of a copy, is not conveying.
|
|
||||||
|
|
||||||
An interactive user interface displays "Appropriate Legal Notices"
|
|
||||||
to the extent that it includes a convenient and prominently visible
|
|
||||||
feature that (1) displays an appropriate copyright notice, and (2)
|
|
||||||
tells the user that there is no warranty for the work (except to the
|
|
||||||
extent that warranties are provided), that licensees may convey the
|
|
||||||
work under this License, and how to view a copy of this License. If
|
|
||||||
the interface presents a list of user commands or options, such as a
|
|
||||||
menu, a prominent item in the list meets this criterion.
|
|
||||||
|
|
||||||
1. Source Code.
|
|
||||||
|
|
||||||
The "source code" for a work means the preferred form of the work
|
|
||||||
for making modifications to it. "Object code" means any non-source
|
|
||||||
form of a work.
|
|
||||||
|
|
||||||
A "Standard Interface" means an interface that either is an official
|
|
||||||
standard defined by a recognized standards body, or, in the case of
|
|
||||||
interfaces specified for a particular programming language, one that
|
|
||||||
is widely used among developers working in that language.
|
|
||||||
|
|
||||||
The "System Libraries" of an executable work include anything, other
|
|
||||||
than the work as a whole, that (a) is included in the normal form of
|
|
||||||
packaging a Major Component, but which is not part of that Major
|
|
||||||
Component, and (b) serves only to enable use of the work with that
|
|
||||||
Major Component, or to implement a Standard Interface for which an
|
|
||||||
implementation is available to the public in source code form. A
|
|
||||||
"Major Component", in this context, means a major essential component
|
|
||||||
(kernel, window system, and so on) of the specific operating system
|
|
||||||
(if any) on which the executable work runs, or a compiler used to
|
|
||||||
produce the work, or an object code interpreter used to run it.
|
|
||||||
|
|
||||||
The "Corresponding Source" for a work in object code form means all
|
|
||||||
the source code needed to generate, install, and (for an executable
|
|
||||||
work) run the object code and to modify the work, including scripts to
|
|
||||||
control those activities. However, it does not include the work's
|
|
||||||
System Libraries, or general-purpose tools or generally available free
|
|
||||||
programs which are used unmodified in performing those activities but
|
|
||||||
which are not part of the work. For example, Corresponding Source
|
|
||||||
includes interface definition files associated with source files for
|
|
||||||
the work, and the source code for shared libraries and dynamically
|
|
||||||
linked subprograms that the work is specifically designed to require,
|
|
||||||
such as by intimate data communication or control flow between those
|
|
||||||
subprograms and other parts of the work.
|
|
||||||
|
|
||||||
The Corresponding Source need not include anything that users
|
|
||||||
can regenerate automatically from other parts of the Corresponding
|
|
||||||
Source.
|
|
||||||
|
|
||||||
The Corresponding Source for a work in source code form is that
|
|
||||||
same work.
|
|
||||||
|
|
||||||
2. Basic Permissions.
|
|
||||||
|
|
||||||
All rights granted under this License are granted for the term of
|
|
||||||
copyright on the Program, and are irrevocable provided the stated
|
|
||||||
conditions are met. This License explicitly affirms your unlimited
|
|
||||||
permission to run the unmodified Program. The output from running a
|
|
||||||
covered work is covered by this License only if the output, given its
|
|
||||||
content, constitutes a covered work. This License acknowledges your
|
|
||||||
rights of fair use or other equivalent, as provided by copyright law.
|
|
||||||
|
|
||||||
You may make, run and propagate covered works that you do not
|
|
||||||
convey, without conditions so long as your license otherwise remains
|
|
||||||
in force. You may convey covered works to others for the sole purpose
|
|
||||||
of having them make modifications exclusively for you, or provide you
|
|
||||||
with facilities for running those works, provided that you comply with
|
|
||||||
the terms of this License in conveying all material for which you do
|
|
||||||
not control copyright. Those thus making or running the covered works
|
|
||||||
for you must do so exclusively on your behalf, under your direction
|
|
||||||
and control, on terms that prohibit them from making any copies of
|
|
||||||
your copyrighted material outside their relationship with you.
|
|
||||||
|
|
||||||
Conveying under any other circumstances is permitted solely under
|
|
||||||
the conditions stated below. Sublicensing is not allowed; section 10
|
|
||||||
makes it unnecessary.
|
|
||||||
|
|
||||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
|
||||||
|
|
||||||
No covered work shall be deemed part of an effective technological
|
|
||||||
measure under any applicable law fulfilling obligations under article
|
|
||||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
|
||||||
similar laws prohibiting or restricting circumvention of such
|
|
||||||
measures.
|
|
||||||
|
|
||||||
When you convey a covered work, you waive any legal power to forbid
|
|
||||||
circumvention of technological measures to the extent such circumvention
|
|
||||||
is effected by exercising rights under this License with respect to
|
|
||||||
the covered work, and you disclaim any intention to limit operation or
|
|
||||||
modification of the work as a means of enforcing, against the work's
|
|
||||||
users, your or third parties' legal rights to forbid circumvention of
|
|
||||||
technological measures.
|
|
||||||
|
|
||||||
4. Conveying Verbatim Copies.
|
|
||||||
|
|
||||||
You may convey verbatim copies of the Program's source code as you
|
|
||||||
receive it, in any medium, provided that you conspicuously and
|
|
||||||
appropriately publish on each copy an appropriate copyright notice;
|
|
||||||
keep intact all notices stating that this License and any
|
|
||||||
non-permissive terms added in accord with section 7 apply to the code;
|
|
||||||
keep intact all notices of the absence of any warranty; and give all
|
|
||||||
recipients a copy of this License along with the Program.
|
|
||||||
|
|
||||||
You may charge any price or no price for each copy that you convey,
|
|
||||||
and you may offer support or warranty protection for a fee.
|
|
||||||
|
|
||||||
5. Conveying Modified Source Versions.
|
|
||||||
|
|
||||||
You may convey a work based on the Program, or the modifications to
|
|
||||||
produce it from the Program, in the form of source code under the
|
|
||||||
terms of section 4, provided that you also meet all of these conditions:
|
|
||||||
|
|
||||||
a) The work must carry prominent notices stating that you modified
|
|
||||||
it, and giving a relevant date.
|
|
||||||
|
|
||||||
b) The work must carry prominent notices stating that it is
|
|
||||||
released under this License and any conditions added under section
|
|
||||||
7. This requirement modifies the requirement in section 4 to
|
|
||||||
"keep intact all notices".
|
|
||||||
|
|
||||||
c) You must license the entire work, as a whole, under this
|
|
||||||
License to anyone who comes into possession of a copy. This
|
|
||||||
License will therefore apply, along with any applicable section 7
|
|
||||||
additional terms, to the whole of the work, and all its parts,
|
|
||||||
regardless of how they are packaged. This License gives no
|
|
||||||
permission to license the work in any other way, but it does not
|
|
||||||
invalidate such permission if you have separately received it.
|
|
||||||
|
|
||||||
d) If the work has interactive user interfaces, each must display
|
|
||||||
Appropriate Legal Notices; however, if the Program has interactive
|
|
||||||
interfaces that do not display Appropriate Legal Notices, your
|
|
||||||
work need not make them do so.
|
|
||||||
|
|
||||||
A compilation of a covered work with other separate and independent
|
|
||||||
works, which are not by their nature extensions of the covered work,
|
|
||||||
and which are not combined with it such as to form a larger program,
|
|
||||||
in or on a volume of a storage or distribution medium, is called an
|
|
||||||
"aggregate" if the compilation and its resulting copyright are not
|
|
||||||
used to limit the access or legal rights of the compilation's users
|
|
||||||
beyond what the individual works permit. Inclusion of a covered work
|
|
||||||
in an aggregate does not cause this License to apply to the other
|
|
||||||
parts of the aggregate.
|
|
||||||
|
|
||||||
6. Conveying Non-Source Forms.
|
|
||||||
|
|
||||||
You may convey a covered work in object code form under the terms
|
|
||||||
of sections 4 and 5, provided that you also convey the
|
|
||||||
machine-readable Corresponding Source under the terms of this License,
|
|
||||||
in one of these ways:
|
|
||||||
|
|
||||||
a) Convey the object code in, or embodied in, a physical product
|
|
||||||
(including a physical distribution medium), accompanied by the
|
|
||||||
Corresponding Source fixed on a durable physical medium
|
|
||||||
customarily used for software interchange.
|
|
||||||
|
|
||||||
b) Convey the object code in, or embodied in, a physical product
|
|
||||||
(including a physical distribution medium), accompanied by a
|
|
||||||
written offer, valid for at least three years and valid for as
|
|
||||||
long as you offer spare parts or customer support for that product
|
|
||||||
model, to give anyone who possesses the object code either (1) a
|
|
||||||
copy of the Corresponding Source for all the software in the
|
|
||||||
product that is covered by this License, on a durable physical
|
|
||||||
medium customarily used for software interchange, for a price no
|
|
||||||
more than your reasonable cost of physically performing this
|
|
||||||
conveying of source, or (2) access to copy the
|
|
||||||
Corresponding Source from a network server at no charge.
|
|
||||||
|
|
||||||
c) Convey individual copies of the object code with a copy of the
|
|
||||||
written offer to provide the Corresponding Source. This
|
|
||||||
alternative is allowed only occasionally and noncommercially, and
|
|
||||||
only if you received the object code with such an offer, in accord
|
|
||||||
with subsection 6b.
|
|
||||||
|
|
||||||
d) Convey the object code by offering access from a designated
|
|
||||||
place (gratis or for a charge), and offer equivalent access to the
|
|
||||||
Corresponding Source in the same way through the same place at no
|
|
||||||
further charge. You need not require recipients to copy the
|
|
||||||
Corresponding Source along with the object code. If the place to
|
|
||||||
copy the object code is a network server, the Corresponding Source
|
|
||||||
may be on a different server (operated by you or a third party)
|
|
||||||
that supports equivalent copying facilities, provided you maintain
|
|
||||||
clear directions next to the object code saying where to find the
|
|
||||||
Corresponding Source. Regardless of what server hosts the
|
|
||||||
Corresponding Source, you remain obligated to ensure that it is
|
|
||||||
available for as long as needed to satisfy these requirements.
|
|
||||||
|
|
||||||
e) Convey the object code using peer-to-peer transmission, provided
|
|
||||||
you inform other peers where the object code and Corresponding
|
|
||||||
Source of the work are being offered to the general public at no
|
|
||||||
charge under subsection 6d.
|
|
||||||
|
|
||||||
A separable portion of the object code, whose source code is excluded
|
|
||||||
from the Corresponding Source as a System Library, need not be
|
|
||||||
included in conveying the object code work.
|
|
||||||
|
|
||||||
A "User Product" is either (1) a "consumer product", which means any
|
|
||||||
tangible personal property which is normally used for personal, family,
|
|
||||||
or household purposes, or (2) anything designed or sold for incorporation
|
|
||||||
into a dwelling. In determining whether a product is a consumer product,
|
|
||||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
|
||||||
product received by a particular user, "normally used" refers to a
|
|
||||||
typical or common use of that class of product, regardless of the status
|
|
||||||
of the particular user or of the way in which the particular user
|
|
||||||
actually uses, or expects or is expected to use, the product. A product
|
|
||||||
is a consumer product regardless of whether the product has substantial
|
|
||||||
commercial, industrial or non-consumer uses, unless such uses represent
|
|
||||||
the only significant mode of use of the product.
|
|
||||||
|
|
||||||
"Installation Information" for a User Product means any methods,
|
|
||||||
procedures, authorization keys, or other information required to install
|
|
||||||
and execute modified versions of a covered work in that User Product from
|
|
||||||
a modified version of its Corresponding Source. The information must
|
|
||||||
suffice to ensure that the continued functioning of the modified object
|
|
||||||
code is in no case prevented or interfered with solely because
|
|
||||||
modification has been made.
|
|
||||||
|
|
||||||
If you convey an object code work under this section in, or with, or
|
|
||||||
specifically for use in, a User Product, and the conveying occurs as
|
|
||||||
part of a transaction in which the right of possession and use of the
|
|
||||||
User Product is transferred to the recipient in perpetuity or for a
|
|
||||||
fixed term (regardless of how the transaction is characterized), the
|
|
||||||
Corresponding Source conveyed under this section must be accompanied
|
|
||||||
by the Installation Information. But this requirement does not apply
|
|
||||||
if neither you nor any third party retains the ability to install
|
|
||||||
modified object code on the User Product (for example, the work has
|
|
||||||
been installed in ROM).
|
|
||||||
|
|
||||||
The requirement to provide Installation Information does not include a
|
|
||||||
requirement to continue to provide support service, warranty, or updates
|
|
||||||
for a work that has been modified or installed by the recipient, or for
|
|
||||||
the User Product in which it has been modified or installed. Access to a
|
|
||||||
network may be denied when the modification itself materially and
|
|
||||||
adversely affects the operation of the network or violates the rules and
|
|
||||||
protocols for communication across the network.
|
|
||||||
|
|
||||||
Corresponding Source conveyed, and Installation Information provided,
|
|
||||||
in accord with this section must be in a format that is publicly
|
|
||||||
documented (and with an implementation available to the public in
|
|
||||||
source code form), and must require no special password or key for
|
|
||||||
unpacking, reading or copying.
|
|
||||||
|
|
||||||
7. Additional Terms.
|
|
||||||
|
|
||||||
"Additional permissions" are terms that supplement the terms of this
|
|
||||||
License by making exceptions from one or more of its conditions.
|
|
||||||
Additional permissions that are applicable to the entire Program shall
|
|
||||||
be treated as though they were included in this License, to the extent
|
|
||||||
that they are valid under applicable law. If additional permissions
|
|
||||||
apply only to part of the Program, that part may be used separately
|
|
||||||
under those permissions, but the entire Program remains governed by
|
|
||||||
this License without regard to the additional permissions.
|
|
||||||
|
|
||||||
When you convey a copy of a covered work, you may at your option
|
|
||||||
remove any additional permissions from that copy, or from any part of
|
|
||||||
it. (Additional permissions may be written to require their own
|
|
||||||
removal in certain cases when you modify the work.) You may place
|
|
||||||
additional permissions on material, added by you to a covered work,
|
|
||||||
for which you have or can give appropriate copyright permission.
|
|
||||||
|
|
||||||
Notwithstanding any other provision of this License, for material you
|
|
||||||
add to a covered work, you may (if authorized by the copyright holders of
|
|
||||||
that material) supplement the terms of this License with terms:
|
|
||||||
|
|
||||||
a) Disclaiming warranty or limiting liability differently from the
|
|
||||||
terms of sections 15 and 16 of this License; or
|
|
||||||
|
|
||||||
b) Requiring preservation of specified reasonable legal notices or
|
|
||||||
author attributions in that material or in the Appropriate Legal
|
|
||||||
Notices displayed by works containing it; or
|
|
||||||
|
|
||||||
c) Prohibiting misrepresentation of the origin of that material, or
|
|
||||||
requiring that modified versions of such material be marked in
|
|
||||||
reasonable ways as different from the original version; or
|
|
||||||
|
|
||||||
d) Limiting the use for publicity purposes of names of licensors or
|
|
||||||
authors of the material; or
|
|
||||||
|
|
||||||
e) Declining to grant rights under trademark law for use of some
|
|
||||||
trade names, trademarks, or service marks; or
|
|
||||||
|
|
||||||
f) Requiring indemnification of licensors and authors of that
|
|
||||||
material by anyone who conveys the material (or modified versions of
|
|
||||||
it) with contractual assumptions of liability to the recipient, for
|
|
||||||
any liability that these contractual assumptions directly impose on
|
|
||||||
those licensors and authors.
|
|
||||||
|
|
||||||
All other non-permissive additional terms are considered "further
|
|
||||||
restrictions" within the meaning of section 10. If the Program as you
|
|
||||||
received it, or any part of it, contains a notice stating that it is
|
|
||||||
governed by this License along with a term that is a further
|
|
||||||
restriction, you may remove that term. If a license document contains
|
|
||||||
a further restriction but permits relicensing or conveying under this
|
|
||||||
License, you may add to a covered work material governed by the terms
|
|
||||||
of that license document, provided that the further restriction does
|
|
||||||
not survive such relicensing or conveying.
|
|
||||||
|
|
||||||
If you add terms to a covered work in accord with this section, you
|
|
||||||
must place, in the relevant source files, a statement of the
|
|
||||||
additional terms that apply to those files, or a notice indicating
|
|
||||||
where to find the applicable terms.
|
|
||||||
|
|
||||||
Additional terms, permissive or non-permissive, may be stated in the
|
|
||||||
form of a separately written license, or stated as exceptions;
|
|
||||||
the above requirements apply either way.
|
|
||||||
|
|
||||||
8. Termination.
|
|
||||||
|
|
||||||
You may not propagate or modify a covered work except as expressly
|
|
||||||
provided under this License. Any attempt otherwise to propagate or
|
|
||||||
modify it is void, and will automatically terminate your rights under
|
|
||||||
this License (including any patent licenses granted under the third
|
|
||||||
paragraph of section 11).
|
|
||||||
|
|
||||||
However, if you cease all violation of this License, then your
|
|
||||||
license from a particular copyright holder is reinstated (a)
|
|
||||||
provisionally, unless and until the copyright holder explicitly and
|
|
||||||
finally terminates your license, and (b) permanently, if the copyright
|
|
||||||
holder fails to notify you of the violation by some reasonable means
|
|
||||||
prior to 60 days after the cessation.
|
|
||||||
|
|
||||||
Moreover, your license from a particular copyright holder is
|
|
||||||
reinstated permanently if the copyright holder notifies you of the
|
|
||||||
violation by some reasonable means, this is the first time you have
|
|
||||||
received notice of violation of this License (for any work) from that
|
|
||||||
copyright holder, and you cure the violation prior to 30 days after
|
|
||||||
your receipt of the notice.
|
|
||||||
|
|
||||||
Termination of your rights under this section does not terminate the
|
|
||||||
licenses of parties who have received copies or rights from you under
|
|
||||||
this License. If your rights have been terminated and not permanently
|
|
||||||
reinstated, you do not qualify to receive new licenses for the same
|
|
||||||
material under section 10.
|
|
||||||
|
|
||||||
9. Acceptance Not Required for Having Copies.
|
|
||||||
|
|
||||||
You are not required to accept this License in order to receive or
|
|
||||||
run a copy of the Program. Ancillary propagation of a covered work
|
|
||||||
occurring solely as a consequence of using peer-to-peer transmission
|
|
||||||
to receive a copy likewise does not require acceptance. However,
|
|
||||||
nothing other than this License grants you permission to propagate or
|
|
||||||
modify any covered work. These actions infringe copyright if you do
|
|
||||||
not accept this License. Therefore, by modifying or propagating a
|
|
||||||
covered work, you indicate your acceptance of this License to do so.
|
|
||||||
|
|
||||||
10. Automatic Licensing of Downstream Recipients.
|
|
||||||
|
|
||||||
Each time you convey a covered work, the recipient automatically
|
|
||||||
receives a license from the original licensors, to run, modify and
|
|
||||||
propagate that work, subject to this License. You are not responsible
|
|
||||||
for enforcing compliance by third parties with this License.
|
|
||||||
|
|
||||||
An "entity transaction" is a transaction transferring control of an
|
|
||||||
organization, or substantially all assets of one, or subdividing an
|
|
||||||
organization, or merging organizations. If propagation of a covered
|
|
||||||
work results from an entity transaction, each party to that
|
|
||||||
transaction who receives a copy of the work also receives whatever
|
|
||||||
licenses to the work the party's predecessor in interest had or could
|
|
||||||
give under the previous paragraph, plus a right to possession of the
|
|
||||||
Corresponding Source of the work from the predecessor in interest, if
|
|
||||||
the predecessor has it or can get it with reasonable efforts.
|
|
||||||
|
|
||||||
You may not impose any further restrictions on the exercise of the
|
|
||||||
rights granted or affirmed under this License. For example, you may
|
|
||||||
not impose a license fee, royalty, or other charge for exercise of
|
|
||||||
rights granted under this License, and you may not initiate litigation
|
|
||||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
|
||||||
any patent claim is infringed by making, using, selling, offering for
|
|
||||||
sale, or importing the Program or any portion of it.
|
|
||||||
|
|
||||||
11. Patents.
|
|
||||||
|
|
||||||
A "contributor" is a copyright holder who authorizes use under this
|
|
||||||
License of the Program or a work on which the Program is based. The
|
|
||||||
work thus licensed is called the contributor's "contributor version".
|
|
||||||
|
|
||||||
A contributor's "essential patent claims" are all patent claims
|
|
||||||
owned or controlled by the contributor, whether already acquired or
|
|
||||||
hereafter acquired, that would be infringed by some manner, permitted
|
|
||||||
by this License, of making, using, or selling its contributor version,
|
|
||||||
but do not include claims that would be infringed only as a
|
|
||||||
consequence of further modification of the contributor version. For
|
|
||||||
purposes of this definition, "control" includes the right to grant
|
|
||||||
patent sublicenses in a manner consistent with the requirements of
|
|
||||||
this License.
|
|
||||||
|
|
||||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
|
||||||
patent license under the contributor's essential patent claims, to
|
|
||||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
|
||||||
propagate the contents of its contributor version.
|
|
||||||
|
|
||||||
In the following three paragraphs, a "patent license" is any express
|
|
||||||
agreement or commitment, however denominated, not to enforce a patent
|
|
||||||
(such as an express permission to practice a patent or covenant not to
|
|
||||||
sue for patent infringement). To "grant" such a patent license to a
|
|
||||||
party means to make such an agreement or commitment not to enforce a
|
|
||||||
patent against the party.
|
|
||||||
|
|
||||||
If you convey a covered work, knowingly relying on a patent license,
|
|
||||||
and the Corresponding Source of the work is not available for anyone
|
|
||||||
to copy, free of charge and under the terms of this License, through a
|
|
||||||
publicly available network server or other readily accessible means,
|
|
||||||
then you must either (1) cause the Corresponding Source to be so
|
|
||||||
available, or (2) arrange to deprive yourself of the benefit of the
|
|
||||||
patent license for this particular work, or (3) arrange, in a manner
|
|
||||||
consistent with the requirements of this License, to extend the patent
|
|
||||||
license to downstream recipients. "Knowingly relying" means you have
|
|
||||||
actual knowledge that, but for the patent license, your conveying the
|
|
||||||
covered work in a country, or your recipient's use of the covered work
|
|
||||||
in a country, would infringe one or more identifiable patents in that
|
|
||||||
country that you have reason to believe are valid.
|
|
||||||
|
|
||||||
If, pursuant to or in connection with a single transaction or
|
|
||||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
|
||||||
covered work, and grant a patent license to some of the parties
|
|
||||||
receiving the covered work authorizing them to use, propagate, modify
|
|
||||||
or convey a specific copy of the covered work, then the patent license
|
|
||||||
you grant is automatically extended to all recipients of the covered
|
|
||||||
work and works based on it.
|
|
||||||
|
|
||||||
A patent license is "discriminatory" if it does not include within
|
|
||||||
the scope of its coverage, prohibits the exercise of, or is
|
|
||||||
conditioned on the non-exercise of one or more of the rights that are
|
|
||||||
specifically granted under this License. You may not convey a covered
|
|
||||||
work if you are a party to an arrangement with a third party that is
|
|
||||||
in the business of distributing software, under which you make payment
|
|
||||||
to the third party based on the extent of your activity of conveying
|
|
||||||
the work, and under which the third party grants, to any of the
|
|
||||||
parties who would receive the covered work from you, a discriminatory
|
|
||||||
patent license (a) in connection with copies of the covered work
|
|
||||||
conveyed by you (or copies made from those copies), or (b) primarily
|
|
||||||
for and in connection with specific products or compilations that
|
|
||||||
contain the covered work, unless you entered into that arrangement,
|
|
||||||
or that patent license was granted, prior to 28 March 2007.
|
|
||||||
|
|
||||||
Nothing in this License shall be construed as excluding or limiting
|
|
||||||
any implied license or other defenses to infringement that may
|
|
||||||
otherwise be available to you under applicable patent law.
|
|
||||||
|
|
||||||
12. No Surrender of Others' Freedom.
|
|
||||||
|
|
||||||
If conditions are imposed on you (whether by court order, agreement or
|
|
||||||
otherwise) that contradict the conditions of this License, they do not
|
|
||||||
excuse you from the conditions of this License. If you cannot convey a
|
|
||||||
covered work so as to satisfy simultaneously your obligations under this
|
|
||||||
License and any other pertinent obligations, then as a consequence you may
|
|
||||||
not convey it at all. For example, if you agree to terms that obligate you
|
|
||||||
to collect a royalty for further conveying from those to whom you convey
|
|
||||||
the Program, the only way you could satisfy both those terms and this
|
|
||||||
License would be to refrain entirely from conveying the Program.
|
|
||||||
|
|
||||||
13. Remote Network Interaction; Use with the GNU General Public License.
|
|
||||||
|
|
||||||
Notwithstanding any other provision of this License, if you modify the
|
|
||||||
Program, your modified version must prominently offer all users
|
|
||||||
interacting with it remotely through a computer network (if your version
|
|
||||||
supports such interaction) an opportunity to receive the Corresponding
|
|
||||||
Source of your version by providing access to the Corresponding Source
|
|
||||||
from a network server at no charge, through some standard or customary
|
|
||||||
means of facilitating copying of software. This Corresponding Source
|
|
||||||
shall include the Corresponding Source for any work covered by version 3
|
|
||||||
of the GNU General Public License that is incorporated pursuant to the
|
|
||||||
following paragraph.
|
|
||||||
|
|
||||||
Notwithstanding any other provision of this License, you have
|
|
||||||
permission to link or combine any covered work with a work licensed
|
|
||||||
under version 3 of the GNU General Public License into a single
|
|
||||||
combined work, and to convey the resulting work. The terms of this
|
|
||||||
License will continue to apply to the part which is the covered work,
|
|
||||||
but the work with which it is combined will remain governed by version
|
|
||||||
3 of the GNU General Public License.
|
|
||||||
|
|
||||||
14. Revised Versions of this License.
|
|
||||||
|
|
||||||
The Free Software Foundation may publish revised and/or new versions of
|
|
||||||
the GNU Affero General Public License from time to time. Such new versions
|
|
||||||
will be similar in spirit to the present version, but may differ in detail to
|
|
||||||
address new problems or concerns.
|
|
||||||
|
|
||||||
Each version is given a distinguishing version number. If the
|
|
||||||
Program specifies that a certain numbered version of the GNU Affero General
|
|
||||||
Public License "or any later version" applies to it, you have the
|
|
||||||
option of following the terms and conditions either of that numbered
|
|
||||||
version or of any later version published by the Free Software
|
|
||||||
Foundation. If the Program does not specify a version number of the
|
|
||||||
GNU Affero General Public License, you may choose any version ever published
|
|
||||||
by the Free Software Foundation.
|
|
||||||
|
|
||||||
If the Program specifies that a proxy can decide which future
|
|
||||||
versions of the GNU Affero General Public License can be used, that proxy's
|
|
||||||
public statement of acceptance of a version permanently authorizes you
|
|
||||||
to choose that version for the Program.
|
|
||||||
|
|
||||||
Later license versions may give you additional or different
|
|
||||||
permissions. However, no additional obligations are imposed on any
|
|
||||||
author or copyright holder as a result of your choosing to follow a
|
|
||||||
later version.
|
|
||||||
|
|
||||||
15. Disclaimer of Warranty.
|
|
||||||
|
|
||||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
|
||||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
|
||||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
|
||||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
|
||||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
|
||||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
|
||||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
|
||||||
|
|
||||||
16. Limitation of Liability.
|
|
||||||
|
|
||||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
|
||||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
|
||||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
|
||||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
|
||||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
|
||||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
|
||||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
|
||||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
|
||||||
SUCH DAMAGES.
|
|
||||||
|
|
||||||
17. Interpretation of Sections 15 and 16.
|
|
||||||
|
|
||||||
If the disclaimer of warranty and limitation of liability provided
|
|
||||||
above cannot be given local legal effect according to their terms,
|
|
||||||
reviewing courts shall apply local law that most closely approximates
|
|
||||||
an absolute waiver of all civil liability in connection with the
|
|
||||||
Program, unless a warranty or assumption of liability accompanies a
|
|
||||||
copy of the Program in return for a fee.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
How to Apply These Terms to Your New Programs
|
|
||||||
|
|
||||||
If you develop a new program, and you want it to be of the greatest
|
|
||||||
possible use to the public, the best way to achieve this is to make it
|
|
||||||
free software which everyone can redistribute and change under these terms.
|
|
||||||
|
|
||||||
To do so, attach the following notices to the program. It is safest
|
|
||||||
to attach them to the start of each source file to most effectively
|
|
||||||
state the exclusion of warranty; and each file should have at least
|
|
||||||
the "copyright" line and a pointer to where the full notice is found.
|
|
||||||
|
|
||||||
<one line to give the program's name and a brief idea of what it does.>
|
|
||||||
Copyright (C) <year> <name of author>
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU Affero General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU Affero General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Affero General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
|
||||||
|
|
||||||
If your software can interact with users remotely through a computer
|
|
||||||
network, you should also make sure that it provides a way for users to
|
|
||||||
get its source. For example, if your program is a web application, its
|
|
||||||
interface could display a "Source" link that leads users to an archive
|
|
||||||
of the code. There are many ways you could offer source, and different
|
|
||||||
solutions will be better for different programs; see section 13 for the
|
|
||||||
specific requirements.
|
|
||||||
|
|
||||||
You should also get your employer (if you work as a programmer) or school,
|
|
||||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
|
||||||
For more information on this, and how to apply and follow the GNU AGPL, see
|
|
||||||
<http://www.gnu.org/licenses/>.
|
|
|
@ -1,23 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# create the mattermost user and database
|
|
||||||
su postgres -c 'createuser mmuser'
|
|
||||||
|
|
||||||
# not sure this or the other one works
|
|
||||||
# su postgres -c 'createdb mattermost'
|
|
||||||
su postgres -c 'createdb -O mmuser mattermost'
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo systemctl status mattermost.service
|
|
||||||
echo
|
|
||||||
echo 'su - postgres'
|
|
||||||
echo 'psql'
|
|
||||||
echo '\\db # will list the tablespaces'
|
|
||||||
echo '\\dg # will list users'
|
|
||||||
echo
|
|
||||||
echo "ALTER USER mmuser with password 'mmpass';"
|
|
||||||
echo
|
|
||||||
echo "CREATE DATABASE mattermost;"
|
|
||||||
echo "CREATE USER mmuser WITH PASSWORD 'mmpass';"
|
|
||||||
echo "GRANT ALL PRIVILEGES ON DATABASE mattermost to mmuser;"
|
|
||||||
echo
|
|
|
@ -1,15 +0,0 @@
|
||||||
#!/bin/sh -x
|
|
||||||
echo "got here in mattermost -- jcarr put this here"
|
|
||||||
touch /tmp/mattermost.jcarr.install
|
|
||||||
echo
|
|
||||||
echo follow the instructions to complete an install from here:
|
|
||||||
echo
|
|
||||||
echo https://docs.mattermost.com/install/install-tar.html
|
|
||||||
echo
|
|
||||||
|
|
||||||
useradd --system --user-group mattermost
|
|
||||||
echo $?
|
|
||||||
|
|
||||||
systemctl daemon-reload
|
|
||||||
echo systemctl status mattermost.service
|
|
||||||
echo systemctl start mattermost.service
|
|
|
@ -1,74 +0,0 @@
|
||||||
.PHONY: control
|
|
||||||
|
|
||||||
VERSION=221118-e58fee0fb
|
|
||||||
BASENAME=photoprism
|
|
||||||
|
|
||||||
help:
|
|
||||||
@echo
|
|
||||||
@echo "make all # to attempt to download, extract and build the .deb package using dpkg"
|
|
||||||
@echo
|
|
||||||
|
|
||||||
all: download clean extract DEBIAN build
|
|
||||||
|
|
||||||
build-dep:
|
|
||||||
apt install tensorflow # this isn't actually packaged
|
|
||||||
git clone https://github.com/photoprism/photoprism.git
|
|
||||||
dd photoprism
|
|
||||||
git checkout release
|
|
||||||
sudo make all
|
|
||||||
sudo ./scripts/build.sh prod /opt/photoprism/bin/photoprism
|
|
||||||
sudo cp -a assets/ /opt/photoprism/assets
|
|
||||||
# now follow instructions for adduser, postgresql, etc:
|
|
||||||
# https://github.com/IndrekHaav/photoprism-debian
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -rf ../files
|
|
||||||
rm -f ../*.deb
|
|
||||||
rm -f ../*.tar.xz data.tar.xz
|
|
||||||
rm -rf DEBIAN
|
|
||||||
|
|
||||||
download:
|
|
||||||
@echo
|
|
||||||
@echo This uses the binary /usr/local/bin/photoprism
|
|
||||||
@echo
|
|
||||||
@echo https://github.com/photoprism/photoprism/releases
|
|
||||||
@echo mkdir ~/go/src/github.com/photoprism; cd ~/go/src/github.com/photoprism/
|
|
||||||
@echo git clone http://github.com/photoprism/photoprism
|
|
||||||
@echo cd photoprims/; go get -v -u ...
|
|
||||||
|
|
||||||
extract:
|
|
||||||
cp -a files ../
|
|
||||||
mkdir -p ../files/opt/
|
|
||||||
cd ../files/opt/ && tar xfz ../../221118-e58fee0fb.tar.gz
|
|
||||||
|
|
||||||
# makes the DEBIAN/ directory
|
|
||||||
DEBIAN:
|
|
||||||
mkdir -p DEBIAN
|
|
||||||
|
|
||||||
# make the md5sum file
|
|
||||||
cd ../files/ && find -type f -exec md5sum '{}' \; |sort -k2 >../md5sums
|
|
||||||
mv ../md5sums DEBIAN/
|
|
||||||
|
|
||||||
# make the control there
|
|
||||||
mkdir -p DEBIAN
|
|
||||||
cp control DEBIAN/
|
|
||||||
# echo Version: ${VERSION} >>DEBIAN/control
|
|
||||||
|
|
||||||
cp postinst DEBIAN
|
|
||||||
|
|
||||||
build:
|
|
||||||
mv DEBIAN ../files/
|
|
||||||
cd .. && dpkg-deb --build files ${BASENAME}_${VERSION}_amd64.deb
|
|
||||||
cd .. && dpkg-deb --info ${BASENAME}_${VERSION}_amd64.deb
|
|
||||||
|
|
||||||
# how to make a debian package "raw" just using tar and ar
|
|
||||||
#
|
|
||||||
# READ THIS AGAIN:
|
|
||||||
#
|
|
||||||
# A .deb file is just output from 'ar rcs'
|
|
||||||
#
|
|
||||||
tar-ar: control
|
|
||||||
cd DEBIAN && tar --ignore-failed-read -cvJf ../control.tar.xz .
|
|
||||||
cd files && tar -cvJf ../data.tar.xz .
|
|
||||||
ar rcs ${BASENAME}_${VERSION}_amd64.deb debian-binary control.tar.xz data.tar.xz
|
|
||||||
dpkg-deb --info ${BASENAME}_${VERSION}_amd64.deb
|
|
|
@ -1 +0,0 @@
|
||||||
10
|
|
|
@ -1,13 +0,0 @@
|
||||||
Source: photoprism
|
|
||||||
Build-Depends: golang
|
|
||||||
Package: photoprism
|
|
||||||
Version: 221118-e58fee0fb
|
|
||||||
Maintainer: Jeff Carr <jcarr@wit.com>
|
|
||||||
Architecture: any
|
|
||||||
Depends:
|
|
||||||
Description: self-hosted web application for managing and organising a photo collection
|
|
||||||
PhotoPrism® is an AI-Powered Photos App for the Decentralized Web.
|
|
||||||
.
|
|
||||||
It makes use of the latest technologies to tag and find pictures automatically without
|
|
||||||
getting in your way. You can run it at home, on a private server, or in the cloud.
|
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
[Unit]
|
|
||||||
Description=PhotoPrism service
|
|
||||||
After=network.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=forking
|
|
||||||
User=photoprism
|
|
||||||
Group=photoprism
|
|
||||||
WorkingDirectory=/opt/photoprism
|
|
||||||
EnvironmentFile=/var/lib/photoprism/.env
|
|
||||||
ExecStart=/opt/photoprism/bin/photoprism up -d
|
|
||||||
ExecStop=/opt/photoprism/bin/photoprism down
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
|
@ -1 +0,0 @@
|
||||||
#!/bin/sh
|
|
|
@ -1,78 +0,0 @@
|
||||||
.PHONY: control
|
|
||||||
|
|
||||||
VERSION=0.6.2
|
|
||||||
BASENAME=tensorflow
|
|
||||||
|
|
||||||
help:
|
|
||||||
@echo
|
|
||||||
@echo "make all # to attempt to download, extract and build the .deb package using dpkg"
|
|
||||||
@echo
|
|
||||||
|
|
||||||
all: download clean extract DEBIAN build
|
|
||||||
|
|
||||||
build-deb:
|
|
||||||
# apt install -y gcc g++ git gnupg make zip unzip
|
|
||||||
# pip install tensorflow
|
|
||||||
# this actually seems to work:
|
|
||||||
pip install tf-nightly-cpu
|
|
||||||
|
|
||||||
build:
|
|
||||||
apt install python3-dev python3-pip
|
|
||||||
pip install -U --user pip numpy wheel packaging requests opt_einsum
|
|
||||||
pip install -U --user keras_preprocessing --no-deps
|
|
||||||
apt install bazel
|
|
||||||
mkdir ~/tmp; cd ~/tmp/ && git clone https://github.com/tensorflow/tensorflow.git
|
|
||||||
./configure
|
|
||||||
bazel build [--config=option] //tensorflow/tools/pip_package:build_pip_package # for cpu support
|
|
||||||
bazel build --config=cuda [--config=option] //tensorflow/tools/pip_package:build_pip_package # for gpu support
|
|
||||||
./bazel-bin/tensorflow/tools/pip_package/build_pip_package --nightly_flag /tmp/tensorflow_pkg
|
|
||||||
pip install /tmp/tensorflow_pkg/tensorflow-version
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -rf ../files
|
|
||||||
rm -f ../*.deb
|
|
||||||
rm -f ../*.tar.xz data.tar.xz
|
|
||||||
rm -rf DEBIAN
|
|
||||||
|
|
||||||
download:
|
|
||||||
@echo
|
|
||||||
@echo This uses the binary /usr/local/bin/tensorflow
|
|
||||||
@echo
|
|
||||||
@echo pip install tensorflow
|
|
||||||
|
|
||||||
extract:
|
|
||||||
cp -a files ../
|
|
||||||
mkdir -p ../files/usr/bin
|
|
||||||
cp /usr/local/bin/tensorflow ../files/usr/bin
|
|
||||||
|
|
||||||
# makes the DEBIAN/ directory
|
|
||||||
DEBIAN:
|
|
||||||
mkdir -p DEBIAN
|
|
||||||
|
|
||||||
# make the md5sum file
|
|
||||||
cd ../files/ && find -type f -exec md5sum '{}' \; |sort -k2 >../md5sums
|
|
||||||
mv ../md5sums DEBIAN/
|
|
||||||
|
|
||||||
# make the control there
|
|
||||||
mkdir -p DEBIAN
|
|
||||||
cp control DEBIAN/
|
|
||||||
# echo Version: ${VERSION} >>DEBIAN/control
|
|
||||||
|
|
||||||
cp postinst DEBIAN
|
|
||||||
|
|
||||||
build:
|
|
||||||
mv DEBIAN ../files/
|
|
||||||
cd .. && dpkg-deb --build files ${BASENAME}_${VERSION}_amd64.deb
|
|
||||||
cd .. && dpkg-deb --info ${BASENAME}_${VERSION}_amd64.deb
|
|
||||||
|
|
||||||
# how to make a debian package "raw" just using tar and ar
|
|
||||||
#
|
|
||||||
# READ THIS AGAIN:
|
|
||||||
#
|
|
||||||
# A .deb file is just output from 'ar rcs'
|
|
||||||
#
|
|
||||||
tar-ar: control
|
|
||||||
cd DEBIAN && tar --ignore-failed-read -cvJf ../control.tar.xz .
|
|
||||||
cd files && tar -cvJf ../data.tar.xz .
|
|
||||||
ar rcs ${BASENAME}_${VERSION}_amd64.deb debian-binary control.tar.xz data.tar.xz
|
|
||||||
dpkg-deb --info ${BASENAME}_${VERSION}_amd64.deb
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue