Jump to content

Immich docker self-hosted google photos setup


Recommended Posts

I'm hoping someone can help me as I've gotten into somewhat of a pickle with Immich. I set it all up recently after watching SpaceInvaderOne's videos, and it all seemed to go very well.

 

Anyway, been through a few updates also with no issues.

 

Yesterday, I decided to re-jig how my server was setup as it seemed to be a bad idea the way I was running my disks.

 

Disk 1 was a 4TB NVMe drive with all my main shares, appdata, immich photo libary etc.. Drive 2 is a Sata 4TB SSD with my plex library on. Anyway, I heard it's not a good idea to run SSD's like this due to trim issues, so I copied all the shares from Disk 1 to Disk 2 so they existed on both devices. Then stopped everything and essentially cleared down disk 1, re-assigned it as a Cache drive, formatted it to BTRFS, all was fine, so I copied everything back over, made sure the shares for appdata etc.. were all pointing to the correct paths, then started it all back up. I did have some mounting issues at first with the cache drive, but managed to sort all that.

 

Everything was working fine, apart from immich (other docker containers no problems like plex and pihole).

 

I  now get the following in the logs for Immich. I've tried logging into the DB and doing the 'SELECT pgvectors_upgrade();' but that also fails. Can't get into the webui of Immich either.  I guess something didn't copy properly or got corrupted, but I did before and after checks on all the files I copied between the disks. The other problem I've got is exported loads from Google Photo's and brought them into Immich, but don't have all the source files now, and I realise I should have kept all of the exported stuff as a saftey net really.

 

I have all the photo libary files that immich has created, but they'd be essentially organised by Immich and I'm not sure I'd be able to recreate things if I lost this instance.

 

Node.js v20.13.1
[Nest] 2659  - 06/08/2024, 10:38:27 AM     LOG [ImmichServer] [EventRepository] Initialized websocket server
[Nest] 2659  - 06/08/2024, 10:38:37 AM    WARN [ImmichServer] [DatabaseService] Could not run vector reindexing checks. If the extension was updated, please restart the Postgres instance.
[Nest] 2691  - 06/08/2024, 10:38:42 AM     LOG [ImmichServer] [EventRepository] Initialized websocket server
[Nest] 2691  - 06/08/2024, 10:38:52 AM    WARN [ImmichServer] [DatabaseService] Could not run vector reindexing checks. If the extension was updated, please restart the Postgres instance.
/app/immich/server/node_modules/typeorm/driver/postgres/PostgresQueryRunner.js:219
            throw new QueryFailedError_1.QueryFailedError(query, parameters, err);
                  ^

QueryFailedError: pgvecto.rs: IPC connection is closed unexpected.
ADVICE: The error is raisen by background worker errors. Please check the full PostgreSQL log to get more information. Please read `https://docs.pgvecto.rs/admin/configuration.html`.
    at PostgresQueryRunner.query (/app/immich/server/node_modules/typeorm/driver/postgres/PostgresQueryRunner.js:219:19)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async DataSource.query (/app/immich/server/node_modules/typeorm/data-source/DataSource.js:350:20)
    at async DatabaseRepository.shouldReindex (/app/immich/server/dist/repositories/database.repository.js:131:25)
    at async /app/immich/server/dist/services/database.service.js:43:21
    at async /app/immich/server/dist/repositories/database.repository.js:189:23 {
  query: '\n' +
    '          SELECT idx_status\n' +
    '          FROM pg_vector_index_stat\n' +
    '          WHERE indexname = $1',
  parameters: [ 'clip_index' ],
  driverError: error: pgvecto.rs: IPC connection is closed unexpected.
  ADVICE: The error is raisen by background worker errors. Please check the full PostgreSQL log to get more information. Please read

Link to comment

@DeadMode you'll likely need to start at the beginning again with Immich.

 

there was an error up there about pgvector. That’s a package that Immich needs inside the Postgres docker. Which docker are you using for that one? I think Spacedinvader has one he put together that includes it. Might be that’s not a problem at all. I also don’t recall, in his videos, how he handles the Postgres database docker. 
 

now the thing that’s really going to cause the problem here is you moved files around. From what I’ve read, Immich keeps full paths in the database. Seemed to me it wasn’t just picture files, but other operating files that it uses. When stuff gets shuffled around, it breaks, and you’ve got to rebuild the whole thing. 
 

now, you’ve already got all your pics and vids (assets) on the server, so you’re going to follow backup instructions posted at Immich.app for the database portion. Then nuke that Postgres docker, and repopulate the entire library using command line interface. I think the Immich-go CLI thing might do the trick. 
 

im not 100% on this stuff. It would probably be good to read through the depreciated old info I left up there in my first post. It may have something more applicable to your situation, or at least give you some more color to possible solutions short of nuking it. 

  • Like 1
Link to comment
Posted (edited)
13 minutes ago, rutherford said:

@DeadMode you'll likely need to start at the beginning again with Immich.

 

there was an error up there about pgvector. That’s a package that Immich needs inside the Postgres docker. Which docker are you using for that one? I think Spacedinvader has one he put together that includes it. Might be that’s not a problem at all. I also don’t recall, in his videos, how he handles the Postgres database docker. 
 

now the thing that’s really going to cause the problem here is you moved files around. From what I’ve read, Immich keeps full paths in the database. Seemed to me it wasn’t just picture files, but other operating files that it uses. When stuff gets shuffled around, it breaks, and you’ve got to rebuild the whole thing. 
 

now, you’ve already got all your pics and vids (assets) on the server, so you’re going to follow backup instructions posted at Immich.app for the database portion. Then nuke that Postgres docker, and repopulate the entire library using command line interface. I think the Immich-go CLI thing might do the trick. 
 

im not 100% on this stuff. It would probably be good to read through the depreciated old info I left up there in my first post. It may have something more applicable to your situation, or at least give you some more color to possible solutions short of nuking it. I used the Spaceinvader template for the Postgres Docker, so it's just Immich and PostgreSQL_Immich running under Docker.

 

 

 

Thanks very much. I don't think any of the files moved (as far Docker is concerned) but obviously something screwed up the DB by the looks of it.

 

A valuable lesson learned really. I didn't really think about backing up the DB and just focused on ensuring the Immich library was safe, but of course they are both very important.

 

I've been having a poke around in the library and can see three separate top level folders for the three users I setup, so in theory I could start from scratch and re-import everything from those folders. I think at this stage that maybe what I will need to do.

 

It was the Postgres template that SpaceinvaderOne made that I used in this case by the way.

Edited by DeadMode
  • Upvote 1
Link to comment

So it wasn't quite the disaster I thought it was given that I had a full intact copy of the photo library that I setup originally. I had three accounts, and they existed as separate folders under the library folder (within the share I setup).

 

And within each of those it's already categorised everything into year, date folders. My fear was that it wouldn't be structured in a way I could re-import but that isn't the case.

 

It does mean I had to start from scratch essentially with the Immich setup though, but that's not the end of the world. I've already re-imported my own part of the library, and it did take a while for it to import and sort all the thumbnails etc.. One thing I did notice is that I have quite a lot of photos that don't have the correct date to them, which may be a lack of metadata with the stuff I imported from Google. That's a job for a rainy day!

 

Once I've set it all up again, I need to ensure the DB is backed up properly though!

Link to comment

@DeadModeanother good cautionary tale then about the importance of backup. There have been several of these. Wink

be sure to follow the actual instructions right off the official documentation. Also look around for what a backup constitutes. The words “3-2-1 backup” come to mind. 

  • Like 1
Link to comment

Went to upgrade to v1.106.2. Command failed, and got the following error page:

docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #0: error

hastebin

 

I did a screen shot of the full settings before, I applied the new changes. I nuked the docker install, started again, copying over old settings.

 

I didn't get any entries at all over at the PostgreSQL_Immich docker. I was able to verify the IP port username and password via docker CLI: I saw entries over there for right or wrong password connection.

 

Went to install another postgresql14 docker, and got the same error! Going to just restart the unRaid box.

 

Ooo there is more going on here. I went to restart the server and it won't boot up. Getting some awesome drive errors I'm sure.

 

more later.

 

 

old settings:

screencapture-192-168-11-2-Dashboard-UpdateContainer-2024-06-11-20_21_38.thumb.png.58d27f61b40b4fc4c0646a4eb0c9b4ea.png

 

new settings:

screencapture-192-168-11-2-Apps-AddContainer-2024-06-11-20_51_35new.thumb.png.f6932b200ee38e0afb2fcaf0f488f52e.png

 

 

Link to comment
  • 2 weeks later...

I am having an issue connecting the android app to my immich server via reverse proxy. The reverse proxy works fine with a browser on the same phone, but the app log states "invalid SSL cert" and "Error while checking server availability", in that order. In my digging around I've seen references to websockets and intermediate certificate relays. I'm not ashamed to say that is over my head. I truly don't think there is anything out of the ordinary for my configuration, so maybe just another set of eyes will see what I am doing wrong? any help would be appreciated!

 

immich.subdomain.conf, SWAG file:

## Version 2024/03/28
# make sure that your immich container is named immich
# make sure that your dns has a cname set for immich
# immich v1.88+ only

server {
    listen 443 ssl http2;
    #listen [::]:443 ssl http2;

    server_name [redacted].*;

    include /config/nginx/ssl.conf;

    client_max_body_size 0;


    # enable for ldap auth (requires ldap-location.conf in the location block)
    #include /config/nginx/ldap-server.conf;

    # enable for Authelia (requires authelia-location.conf in the location block)
    #include /config/nginx/authelia-server.conf;

    # enable for Authentik (requires authentik-location.conf in the location block)
    #include /config/nginx/authentik-server.conf;

    location / {
        # enable the next two lines for http auth
        #auth_basic "Restricted";
        #auth_basic_user_file /config/nginx/.htpasswd;

        # enable for ldap auth (requires ldap-server.conf in the server block)
        #include /config/nginx/ldap-location.conf;

        # enable for Authelia (requires authelia-server.conf in the server block)
        #include /config/nginx/authelia-location.conf;

        # enable for Authentik (requires authentik-server.conf in the server block)
        #include /config/nginx/authentik-location.conf;

        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;
        set $upstream_app immich;
        set $upstream_port 8080;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

    }

    location ~ (/immich)?/api {
        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;
        set $upstream_app immich;
        set $upstream_port 8080;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

    }
}

Screenshot2024-06-30133748.png.e6da67654e0cfdca00caacdc794def4a.pngScreenshot2024-06-30134231.png.cb13938c11164f2a54335e1860185def.png

Link to comment
On 6/30/2024 at 1:46 PM, capnJiP said:

I am having an issue connecting the android app to my immich server via reverse proxy. The reverse proxy works fine with a browser on the same phone, but the app log states "invalid SSL cert" and "Error while checking server availability", in that order. In my digging around I've seen references to websockets and intermediate certificate relays. I'm not ashamed to say that is over my head. I truly don't think there is anything out of the ordinary for my configuration, so maybe just another set of eyes will see what I am doing wrong? any help would be appreciated!

 

immich.subdomain.conf, SWAG file:

## Version 2024/03/28
# make sure that your immich container is named immich
# make sure that your dns has a cname set for immich
# immich v1.88+ only

server {
    listen 443 ssl http2;
    #listen [::]:443 ssl http2;

    server_name [redacted].*;

    include /config/nginx/ssl.conf;

    client_max_body_size 0;


    # enable for ldap auth (requires ldap-location.conf in the location block)
    #include /config/nginx/ldap-server.conf;

    # enable for Authelia (requires authelia-location.conf in the location block)
    #include /config/nginx/authelia-server.conf;

    # enable for Authentik (requires authentik-location.conf in the location block)
    #include /config/nginx/authentik-server.conf;

    location / {
        # enable the next two lines for http auth
        #auth_basic "Restricted";
        #auth_basic_user_file /config/nginx/.htpasswd;

        # enable for ldap auth (requires ldap-server.conf in the server block)
        #include /config/nginx/ldap-location.conf;

        # enable for Authelia (requires authelia-server.conf in the server block)
        #include /config/nginx/authelia-location.conf;

        # enable for Authentik (requires authentik-server.conf in the server block)
        #include /config/nginx/authentik-location.conf;

        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;
        set $upstream_app immich;
        set $upstream_port 8080;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

    }

    location ~ (/immich)?/api {
        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;
        set $upstream_app immich;
        set $upstream_port 8080;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

    }
}

Screenshot2024-06-30133748.png.e6da67654e0cfdca00caacdc794def4a.pngScreenshot2024-06-30134231.png.cb13938c11164f2a54335e1860185def.png

Nevermind - found a toggle in the android app advanced settings for self-signed certs. enabled that and all is well.

 

Edit Aug2024: later found out that I had fat-fingered SWAG with a period, not a comma, separating my subdomians. fixed that, don't need the self-signed cert toggle.

Edited by capnJiP
I'm an idiot?
Link to comment

Hello everyone, I need help on getting Nvidia Transcoding and Hardware ML working for Immich.

 

I've already added

  • Extra parameters : --runtime=nvidia
  • Variable NVIDIA_VISIBLE_DEVICES : my GPU ID (GPU-xxxxxxx)
  • Variable NVIDIA_DRIVER_CAPABILITIES : all
  • Variable MACHINE_LEARNING_GPU_ACCELERATION : cuda

But Immich still only using my CPU for those tasks.

I've even tried to detect my GPU using nvidia-smi on container console and it gets detected. But somehow the GPU is not being used.

Can anyone help me on how to fix this? attached is my Immich configuration

FireShot Capture 008 - ZenithLab1.0_UpdateContainer - 192.168.1.104 (1).png

Link to comment
18 hours ago, zenaufa said:

Hello everyone, I need help on getting Nvidia Transcoding and Hardware ML working for Immich.

 

I've already added

  • Extra parameters : --runtime=nvidia
  • Variable NVIDIA_VISIBLE_DEVICES : my GPU ID (GPU-xxxxxxx)
  • Variable NVIDIA_DRIVER_CAPABILITIES : all
  • Variable MACHINE_LEARNING_GPU_ACCELERATION : cuda

But Immich still only using my CPU for those tasks.

I've even tried to detect my GPU using nvidia-smi on container console and it gets detected. But somehow the GPU is not being used.

Can anyone help me on how to fix this? attached is my Immich configuration

FireShot Capture 008 - ZenithLab1.0_UpdateContainer - 192.168.1.104 (1).png

@mbc0

So, it looks like you have made the GPU available to the container, but you also need to turn on GPU acceleration in the Immich settings.

Also, imagegenius recently changed how the AIO container uses the GPU. They now maintain 4 versions of the container depending on your scenario: https://github.com/imagegenius/docker-immich/issues/392 

You'll no longer use the MACHINE_LEARNING_GPU_ACCELERATION varaiable and instead set the version tag to :cuda instead of :latest

  • Like 1
Link to comment
5 hours ago, Mattaton said:

@mbc0

So, it looks like you have made the GPU available to the container, but you also need to turn on GPU acceleration in the Immich settings.

Also, imagegenius recently changed how the AIO container uses the GPU. They now maintain 4 versions of the container depending on your scenario: https://github.com/imagegenius/docker-immich/issues/392 

You'll no longer use the MACHINE_LEARNING_GPU_ACCELERATION varaiable and instead set the version tag to :cuda instead of :latest


I've tried it, and finally it's working now :D
Thank you so much for the info!

Screenshot 2024-07-06 at 01.08.59.jpg

  • Like 1
Link to comment
1 hour ago, zenaufa said:


I've tried it, and finally it's working now :D
Thank you so much for the info!

Screenshot 2024-07-06 at 01.08.59.jpg

 

Hi!

 

Glad you have it working 🙂 Thanks for the info @Mattaton 

 

Can I ask what command you are typing to show the NVIDIA info?  I still don't seem to be getting my NVIDIA to work?

 

image.thumb.png.831950db97215fdb9470aa5d6534c86f.png

image.thumb.png.3f10465d51d97ba4ad78bc738f28e602.png

image.thumb.png.67d5fde658ec0acaa3d57030c55bcc7d.png

 

 

Many thanks!

Link to comment

@Mattaton Thank you! That helped me get this working!

 

@mbc0To get the nvidia GPU output go to the immich container's console, type: nvidia-smi

Screenshot2024-07-05175818.png.3c45089bd6cd4cb90740bb001a710ebd.png

 

This will show you that the GPU (left column, middle row, here a GTX1060) is identified and present, but it will not show what tasks are being run. For that, you need to close the window and open the unraid terminal, type the same command: nvidia-smi

Screenshot2024-07-05183141.png.e773f2b2c99f21a72114f6a7c9e7f516.png

If you see the lsiopy process, you are functional. You may have to start a "job" that uses ML in immich, though.

 

Screenshot 2024-07-05 180234.png

  • Like 2
Link to comment
21 minutes ago, capnJiP said:

@Mattaton Thank you! That helped me get this working!

 

@mbc0To get the nvidia GPU output go to the immich container's console, type: nvidia-smi

Screenshot2024-07-05175818.png.3c45089bd6cd4cb90740bb001a710ebd.png

 

This will show you that the GPU (left column, middle row, here a GTX1060) is identified and present, but it will not show what tasks are being run. For that, you need to close the window and open the unraid terminal, type the same command: nvidia-smi

Screenshot2024-07-05183141.png.e773f2b2c99f21a72114f6a7c9e7f516.png

If you see the lsiopy process, you are functional. You may have to start a "job" that uses ML in immich, though.

 

Screenshot 2024-07-05 180234.png

Nice. Glad you guys got it going! Enjoy!

  • Like 2
Link to comment

So is there any point to adding an nvidia node to the setup after you've already done a big import and your libaray is up and running? Does it offer any benefits? Building a second unraid server soon and I'll be putting a GTX 1660ti into it, but I wasn't going to have it running all the time, but if it was worth it, I could consider it.  Or even move immich over to the new machine. Not fully decided what to do with the setup at the moment, depends how low I can get the power consumption on it.

 

My current server is an HP Prodesk with an 8th gen Intel and 16GB of ram. Does the job quite nicely and tends to run at between 5-10W depending on what it's up to at the time. That has Immich, Plex, Pihole and a few other bits.

Link to comment

I'm having an issue where if I use :latest the docker seems to get stuck. 1.06.4 was the last version that worked:

 

image.thumb.png.eaa80ead3b4d0886eca6ce8d60a7504d.png

 

I have to switch to :noml to get it to work, but then I lose the smart search options. I've also tried openvino and it also gets stuck. I'm on an intel system.

 

Any ideas?

 

Link to comment
5 hours ago, foo_fighter said:

I'm having an issue where if I use :latest the docker seems to get stuck. 1.06.4 was the last version that worked:

 

image.thumb.png.eaa80ead3b4d0886eca6ce8d60a7504d.png

 

I have to switch to :noml to get it to work, but then I lose the smart search options. I've also tried openvino and it also gets stuck. I'm on an intel system.

 

Any ideas?

 

I'm having the same issue. Usually have to stop it and restart and then it'll fire up.

Actually just yesterday after updating the container it did this and I was drafting a message on the Discord server about it, then it suddenly started as the log window started filling up with the usual start up lines. So it appears it does eventually start of you leave it long enough. But it starts more normally if I stop it and restart it just after updating.

I don't know if there's another batch of processes starting that doesn't log to this screen or what, but I do think it's something that should be looked into.

An issue posted on the imagegenius GitHub is probably in order.

Edited by Mattaton
Link to comment
5 hours ago, Mattaton said:

I'm having the same issue. Usually have to stop it and restart and then it'll fire up.

Actually just yesterday after updating the container it did this and I was drafting a message on the Discord server about it, then it suddenly started as the log window started filling up with the usual start up lines. So it appears it does eventually start of you leave it long enough. But it starts more normally if I stop it and restart it just after updating.

I don't know if there's another batch of processes starting that doesn't log to this screen or what, but I do think it's something that should be looked into.

An issue posted on the imagegenius GitHub is probably in order.

I actually didn't even think to wait, but after a very long time, it did eventually start up.

 

  • Like 1
Link to comment

Quick update, setting to 0.0.0.0:3003 seems to have made it work for some reason:

image.thumb.png.eb56d52cb05311373424a03a26f2a6ac.png

 

One more thing, even with openvino, my smart search isn't working. Is there way to turn off remote machine learning?

image.png.1ead69c0c19ac541807d7e9a7947604c.png

 

image.thumb.png.0755e32c1f086446d59dfb59691a21e9.png

 

I've set the IP to my machine, but it doesn't look like the ML server is running as part of the immich docker. I just want it to not even try to use the remote machine.

 

[Nest] 731  - 07/12/2024, 12:50:19 PM   ERROR [Api:Error: Machine learning request to "http://immich-machine-learning:3003" failed with Error: getaddrinfo ENOTFOUND immich-machine-learning
    at /app/immich/server/dist/repositories/machine-learning.repository.js:19:19
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async MachineLearningRepository.predict (/app/immich/server/dist/repositories/machine-learning.repository.js:18:21)
    at async MachineLearningRepository.encodeText (/app/immich/server/dist/repositories/machine-learning.repository.js:47:26)
    at async SearchService.searchSmart (/app/immich/server/dist/services/search.service.js:97:27)~ob0ej2m8] Error: Machine learning request to "http://immich-machine-learning:3003" failed with Error: getaddrinfo ENOTFOUND immich-machine-learning
 

Edited by foo_fighter
Link to comment
On 7/12/2024 at 3:53 PM, foo_fighter said:

Quick update, setting to 0.0.0.0:3003 seems to have made it work for some reason:

image.thumb.png.eb56d52cb05311373424a03a26f2a6ac.png

 

One more thing, even with openvino, my smart search isn't working. Is there way to turn off remote machine learning?

image.png.1ead69c0c19ac541807d7e9a7947604c.png

 

image.thumb.png.0755e32c1f086446d59dfb59691a21e9.png

 

I've set the IP to my machine, but it doesn't look like the ML server is running as part of the immich docker. I just want it to not even try to use the remote machine.

 

[Nest] 731  - 07/12/2024, 12:50:19 PM   ERROR [Api:Error: Machine learning request to "http://immich-machine-learning:3003" failed with Error: getaddrinfo ENOTFOUND immich-machine-learning
    at /app/immich/server/dist/repositories/machine-learning.repository.js:19:19
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async MachineLearningRepository.predict (/app/immich/server/dist/repositories/machine-learning.repository.js:18:21)
    at async MachineLearningRepository.encodeText (/app/immich/server/dist/repositories/machine-learning.repository.js:47:26)
    at async SearchService.searchSmart (/app/immich/server/dist/services/search.service.js:97:27)~ob0ej2m8] Error: Machine learning request to "http://immich-machine-learning:3003" failed with Error: getaddrinfo ENOTFOUND immich-machine-learning
 

Hi Foo_fighter,

 

0.0.0.0 works because the system is "listening" on any available network interface for the machine learning processes. You could also simply set it to localhost (127.0.0.1) and it would work as well, since you have those processes running in your docker container along with Immich. It won't work with "immich-machine-learning" unless you have a server with a DNS record for that name, and the necessary machine learning processes active on that server.

 

best,

JP

Link to comment
12 hours ago, capnJiP said:

Hi Foo_fighter,

 

0.0.0.0 works because the system is "listening" on any available network interface for the machine learning processes. You could also simply set it to localhost (127.0.0.1) and it would work as well, since you have those processes running in your docker container along with Immich. It won't work with "immich-machine-learning" unless you have a server with a DNS record for that name, and the necessary machine learning processes active on that server.

 

best,

JP

Thanks, that makes sense. I thought I tried localhost:3003, 127.0.0.1:3003 and 192.168.1.196:3003(Unraid IP address)

but I was also in the middle of debugging the long start up times and was going back and forth with the noml version so I may not have had the right combo of docker release + ML settings.

Anyway, it seems to be working fine for now and I hope they get the long start up/ permissions issues worked out soon.

 

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...