Cannot start docker instance of writefreely

Hello,

I know that writefreely does not have an official docker instance, but I chose to still try to run it from docker, because it simplifies my setup significantly.

I chose to use the algernon-writefreely:latest docker image for this particular purpose.

The contents of my docker compose configuration file which I’m using are the following:

version: '2'

networks:
        writefreely:
                external: false

services:
    writefreely:
        image: algernon/writefreely:latest
        volumes:
            - "./data:/data"
        ports:
            - "8083:8080"
        restart: always
        networks:
            - writefreely
    db:
        image: mysql
        restart: always
        environment:
            - MYSQL_ROOT_PASSWORD=<redacted>
            - MYSQL_DATABASE=writefreely
            - MYSQL_USER=writeas
            - MYSQL_PASSWORD=<redacted>
        volumes:
            - ./db/:/var/lib/mysql
        networks:
            - writefreely

What I’m getting is the following error from the logs:

writefreely_1  | 2023/10/22 12:06:08 Created.
writefreely_1  | 2023/10/22 12:06:08 Creating table appmigrations...
writefreely_1  | ERROR: 2023/10/22 12:06:08 app.go:961: Error 1050 (42S01): Table 'appmigrations' already exists
writefreely_1  | 2023/10/22 12:06:08 Creating table collectionattributes...
writefreely_1  | 2023/10/22 12:06:08 Created.
writefreely_1  | 2023/10/22 12:06:08 Creating table collectionkeys...
writefreely_1  | 2023/10/22 12:06:08 Created.
writefreely_1  | 2023/10/22 12:06:08 Creating table collectionpasswords...
writefreely_1  | 2023/10/22 12:06:08 Created.
writefreely_1  | 2023/10/22 12:06:08 Creating table collectionredirects...
writefreely_1  | 2023/10/22 12:06:08 Created.
writefreely_1  | 2023/10/22 12:06:08 Creating table collections...
writefreely_1  | 2023/10/22 12:06:08 Created.
writefreely_1  | 2023/10/22 12:06:08 Creating table posts...
writefreely_1  | 2023/10/22 12:06:08 Created.
writefreely_1  | 2023/10/22 12:06:08 Creating table remotefollows...
writefreely_1  | 2023/10/22 12:06:08 Created.
writefreely_1  | 2023/10/22 12:06:08 Creating table remoteuserkeys...
writefreely_1  | 2023/10/22 12:06:08 Created.
writefreely_1  | 2023/10/22 12:06:08 Creating table remoteusers...
writefreely_1  | 2023/10/22 12:06:08 Created.
writefreely_1  | 2023/10/22 12:06:08 Creating table userattributes...
writefreely_1  | 2023/10/22 12:06:08 Created.
writefreely_1  | 2023/10/22 12:06:08 Creating table userinvites...
writefreely_1  | 2023/10/22 12:06:08 Creating table users...
writefreely_1  | ERROR: 2023/10/22 12:06:08 app.go:961: Error 1050 (42S01): Table 'userinvites' already exists
writefreely_1  | 2023/10/22 12:06:08 Created.
writefreely_1  | 2023/10/22 12:06:08 Creating table usersinvited...
writefreely_1  | ERROR: 2023/10/22 12:06:08 app.go:961: Error 1050 (42S01): Table 'usersinvited' already exists
writefreely_1  | 2023/10/22 12:06:08 Initializing appmigrations table...
writefreely_1  | 2023/10/22 12:06:08 Running migrations...
writefreely_1  | 2023/10/22 12:06:08 Database up-to-date. No migrations to run.
writefreely_1  | 2023/10/22 12:06:08 Done.
writefreely_1  | 2023/10/22 12:06:08 Closing database connection...
writefreely_1  | cp: can't stat 'writefreely.db': No such file or directory

These last messages just get looped over and over again.

The contents of my config.ini file are the following:

[server]
hidden_host          = 
port                 = 8080
bind                 = 0.0.0.0
tls_cert_path        = 
tls_key_path         = 
autocert             = false
templates_parent_dir = 
static_parent_dir    = 
pages_parent_dir     = 
keys_parent_dir      = 
hash_seed            = 
gopher_port          = 0

[database]
type     = mysql
filename = 
username = writeas
password = <redacted>
database = writefreely
host     = writeas_db_1
port     = 3306
tls      = false

[app]
site_name             = Alex's Blog!
site_description      = A blog where I talk about anime, tech and other geeky things
host                  = https://blog.transistor.one
theme                 = write
editor                = 
disable_js            = false
webfonts              = true
landing               = /read
simple_nav            = false
wf_modesty            = false
chorus                = false
forest                = false
disable_drafts        = false
single_user           = false
open_registration     = false
open_deletion         = true
min_username_len      = 3
max_blogs             = 5
federation            = true
public_stats          = true
monetization          = true
notes_only            = false
private               = false
local_timeline        = true
user_invites          = 
default_visibility    = unlisted
update_checks         = false
disable_password_auth = false

Does anyone have any idea what I should do?

Did you ever manage to get this started?

I did not. I gave up on that docker image.

Either that image was somehow flawed, or my setup was just incompatible with it.

I eventually went on and used the guide for developers at Docker — WriteFreely Documentation.

It’s not ideal, since it’s not for production, but it’s the only thing I’ve got

Thanks for letting me know. It’s super disappointing that the developers couldn’t be more involved in trying to get this working

Sadly my knowledge of Docker is very limited :confused: That side of the project has been entirely developed and supported by the community.

Did the Docker guide linked in @meyou69’s comment work for you, @PWD?

Sadly not. Though I saw something got merged recently, hopefully that will solve the problem. I’ll give it another go.