suspend

Seit einiger Zeit war mein s2ram total borked. Konnte nur per s2ram -f suspenden und manchmal ist er einfach nicht aufgewacht. Und seit neustem wachte er einfach gar nicht mehr auf.

5 Stunden lang versucht zu debuggen, und endlich eine Lösung gefunden.

sudo lspci

Realtek Semiconductor Co., Ltd. RTL8111/8168/8411
  PCI Express Gigabit Ethernet Controller (rev 06)

Leider kann der r8169 Treiber kein ASPM, und deswegen wacht der Rechner einfach nicht mehr auf.

Lösung:

sudo pacman -S r8168

und in /etc/modprobe.d/ethernet.conf

blacklist r8169
r8168

Update:

xHCI Hand-Off muss deaktiviert sein, wenn ich suspend funktionierend haben möchte.

Pass

Ich gehe jetzt dazu über mich bei mir unwichtigen Seiten nicht mehr mit von mir ausgewählten Nutzernamen anzumelden und generiere dementsprechend auch eine zufällige Mailadresse. Hat auch den Vorteil, dass falls die DB mal abhanden kommt, meine Hauptmail keinen Spam bekommt und ich die andere einfach blocken kann.

pass generate google.de/$(pwgen -N 1)@domain.tld 9001

Mastodon : Docker : Arch

Hab die letzten Tage Mastodon entdeckt und wollte mir mal eine eigene Instanz aufsetzen. Ging mehr schlecht als recht. Aber nun läuft’s. Ich habe es mit Docker gemacht, weil ich keine Lust auf 100 deps auf meinem Server hatte. Zu meinem Unglück hab ich -1 Ahnung von Docker, weswegen ich fast verweifelt bin.

Docker:

# pacman -S docker-compose
# usermod -a -G docker $(whoami)
# systemctl start docker

Mastodon:

# mkdir -p /usr/share/webapps/mastodon
# chown $(whoami) mastodon
cd /usr/share/webapps/mastodon
git clone https://github.com/tootsuite/mastodon .
git checkout v2.4.0rc1

docker-compose.yml

version: '3'
services:

  db:
    restart: always
    image: postgres:9.6-alpine
    networks:
      - internal_network
### Uncomment to enable DB persistance
    volumes:
      - ./postgres:/var/lib/postgresql/data

  redis:
    restart: always
    image: redis:4.0-alpine
    networks:
      - internal_network
### Uncomment to enable REDIS persistance
    volumes:
      - ./redis:/data

#  es:
#    restart: always
#    image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.1.3
#    environment:
#      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
#    networks:
#      - internal_network
#### Uncomment to enable ES persistance
##    volumes:
##      - ./elasticsearch:/usr/share/elasticsearch/data

  web:
    build: .
    image: tootsuite/mastodon:v2.4.0rc1
    restart: always
    env_file: .env.production
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    environment:
      - WEB_CONCURRENCY=1
      - MAX_THREADS=5
    networks:
      - external_network
      - internal_network
    ports:
      - "127.0.0.1:9001:3000"
    depends_on:
      - db
      - redis
#      - es
    volumes:
      - ./public/assets:/mastodon/public/assets
      - ./public/packs:/mastodon/public/packs
      - ./public/system:/mastodon/public/system


  streaming:
    build: .
    image: tootsuite/mastodon:v2.4.0rc1
    restart: always
    env_file: .env.production
    command: yarn start
    networks:
      - external_network
      - internal_network
    ports:
      - "127.0.0.1:9002:4000"
    depends_on:
      - db
      - redis

  sidekiq:
    build: .
    image: tootsuite/mastodon:v2.4.0rc1
    restart: always
    env_file: .env.production
    command: bundle exec sidekiq -q default -q mailers -q pull -q push
    depends_on:
      - db
      - redis
    networks:
      - external_network
      - internal_network
    volumes:
      - ./public/packs:/mastodon/public/packs
      - ./public/system:/mastodon/public/system

networks:
  external_network:
  internal_network:
    internal: true

Ich hab andere Ports als die default 3000, 4000 genommen, weil meine schon belegt sind.

.env.production

cp .env.production{.sample,}

Und alles so lassen, bis auf:

LOCAL_DOMAIN=sub.domain.tld
SECRET_KEY_BASE=
OTP_SECRET=
VAPID_PRIVATE_KEY=
VAPID_PUBLIC_KEY=
UID=991
GID=991

SECRET_KEY_BASE und OTP_SECRET erstellen durch zweimaliges ausführen von

docker-compose run --rm web rake secret

VAPID_PRIVATE_KEY und VAPID_PUBLIC_KEY durch einmaliges ausführen von

docker-compose run --rm web rake mastodon:webpush:generate_vapid_key

Danach noch:

docker-compose pull
docker-compose build
# chown -R 991:991 public
docker-compose run --rm web rails db:migrate
docker-compose run --rm web rails db:precompile
# chown -R 991:991 public
docker-compose up -d

nginx

Die default Config ist vollkommen ausreichend. Falls ihr aber einen

error during websocket handshake: unexpected response code: 400

bekommen solltet, müsst ihr den client_header hochschrauben per

client_header_buffer_size 64k;
large_client_header_buffers 4 64k;

Page 3 of 21