commit dc66deb991d837f888348e588f0dd7217c24e01c Author: Marc Fokkert Date: Wed Jul 26 21:08:05 2023 +0200 Initial commit diff --git a/.docker/ca.pem b/.docker/ca.pem new file mode 100644 index 0000000..707740a --- /dev/null +++ b/.docker/ca.pem @@ -0,0 +1,35 @@ +-----BEGIN CERTIFICATE----- +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 +Diy/Deow/fsxtivSIYameqg= +-----END CERTIFICATE----- diff --git a/.docker/cert.pem b/.docker/cert.pem new file mode 100644 index 0000000..1bd70bb --- /dev/null +++ b/.docker/cert.pem @@ -0,0 +1,30 @@ +-----BEGIN CERTIFICATE----- +MIIFHTCCAwWgAwIBAgIUf4D1uYzTZSWFY14XVbDy3usRWYwwDQYJKoZIhvcNAQEL +BQAwWjEaMBgGA1UEAxMRQ29udGFpbmVyIFN0YXRpb24xDTALBgNVBAoTBFFOQVAx +DzANBgNVBAgTBlRhaXBlaTEPMA0GA1UEBxMGVGFpcGVpMQswCQYDVQQGEwJUVzAe +Fw0yMjA5MjMxODM1NThaFw0yMzA5MjMxODM1NThaMBExDzANBgNVBAMTBmNsaWVu +dDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK2PkxxDlom8HrvNMx7+ ++hukbDI445h6jAzRu1rgQRAiHS5JrDexvZjEUPu9JDmie8VsCU+7w474VXNQdnMB +t7Zz74R8qt0UDK1vZvPIdvyYQbdxD5X5aN867NHGQEgU9ORndXX5sc25snn3sUEU +k7M0+JjvC8ADZD2tL8JRYTy8d/tLS8Gj/IX3oy0+Q9U6dcwoydf2NFQFICHulhYA +Qj0NpekyT5v5nFg+FlqPIx0TFjAsmkgyQg1jW2b2ZU4Ed4NeqLHpXlvJn6Ug3Dom +3HFGUj/jEEHOkp5wQ1+gwJsJAx0MT+OS1PATIRq8DhxRQBJOPO1Jo06nvhdq6Rjb +ruOkKcq9x5rIUPV4pltnE6NchK9HGA4+B9wb3aOqhAAH02VxIN3LwlLHT3RzzDfZ +habXZkjG8NWFHQ0KdFlfBh8aZGOcw0qkC/4Rw9Im+lVOda1huyWe+0O1FQ8S+8Ua +5HtZywK+ySgHNTqXZ3ZisFy3nQXWLRP/d//sOVVQbx5FpaoXFjzELGneSHt5WLaE +Os5QysCRrIDUkcZdReZiHd8KcXb1dXuirfb807BXfVnkGSgekAIFtRsSU/xb/a7+ +HQ/kr2RWGfAVp1qmJJdusG+iciQb6odb5T2sKh/L2EIKG7xm7nj5m8+TGXGzCTIg +JViu7mDY5/JS34apLiQGYpZNAgMBAAGjJDAiMBMGA1UdJQQMMAoGCCsGAQUFBwMC +MAsGA1UdDwQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAmCORe1lON4MH4K2FS8oV +djaLdgJpD+kQiFc0LEXMMlXE3aI9G7RRgK4BypQmBCmp/bnoF87S5S7LVgdUekhc +bUL2dPj4G4diBR3A/W/xfIrMrAdW6I5sCikG87GRTH5gDsfs6NzQfIeiNXwWqCr3 +rspYY9QK5qz+C+3coo5Gau6bgyTeZ1G5kkSPzETUrcToUcKt4IjLSgUDDJ75iQ6v +EDYxHKr7JjGEd92yQ4B4vuu348rB590p6YSuSGMM4HubQzMtGDXgdTXlJfod7YOb +SdTBy0hePyxigHU/B1p0owu52Nd5wtMrrIfbUrIpOGfvE/diPOHoL+D7FckpFHfF +21f7acaKm5bgQ/HqBvxiTl8+CZRZWD7hVu4KYs8OdkXnrZLHZFwSuOHZjvSxRsnv +aHyYNc4AAksqYYd8qB75d7rdRpPrSuDUcTZH3h/2vFW8bhGNIGgLETl7nbmtoV61 +Irf4FKyNDxboH5PDAE75XZTid9IISgePJ78hjtKkXm3kWyANUyspE4E5VzGkmzYh +mNffl+9UKx63LL3i5Hvkh9t0ZFPfm5YgGQcAsh4mDVDfz2X/Pk0Y2oocJZpvo3cz +Xg0tOLeThpgExqLp/xDnP0olYzbdp50hto+q2WmQeEZz23Vxb3Th7clQVTwfXA57 +hMWNQxrwAkWv0dB72+wphfU= +-----END CERTIFICATE----- diff --git a/.docker/key.pem b/.docker/key.pem new file mode 100644 index 0000000..4a8ce96 --- /dev/null +++ b/.docker/key.pem @@ -0,0 +1,51 @@ +-----BEGIN RSA PRIVATE KEY----- +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 +-----END RSA PRIVATE KEY----- diff --git a/.docker/old/ca.pem b/.docker/old/ca.pem new file mode 100644 index 0000000..66c71f6 --- /dev/null +++ b/.docker/old/ca.pem @@ -0,0 +1,18 @@ +-----BEGIN CERTIFICATE----- +MIIC6jCCAdKgAwIBAgIQeeMKjRLAlcL0KEOnAXL2RzANBgkqhkiG9w0BAQsFADAP +MQ0wCwYDVQQKEwRRTkFQMB4XDTIxMTAxODE3NTIwMFoXDTI0MTAwMjE3NTIwMFow +DzENMAsGA1UEChMEUU5BUDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +APFlddMgMPVaLp4FsP9o0SSIaRwUEklpydIRIJV5zB2LODHeASi/3o2gRdiH3D32 +2L6ihFDDgkKGAkzdBcFkgq4htLuUu5QywO5K1AYDWM8fiIWePhkVjEqqb+p4LTHQ +0hi+IDU425QM9uu1xhHikUGGzmZ7NULiVoWQKNFHuqi+ObE/B570f24b1DKvl+wy +mmKCLTGsTy0mqg2x2v1w9iXeRTq1CFNyFoXpOqKkT0eYBcO4mwtY2WnAZJ+Kr6gQ +hVc2JDptmThDq7EMWtdsvJeN2WY1vdxXVuyW6ks9ZvUSHRrT+LGg7D+Cj7Bfg19T +lEy1L6J80+TesjQYpYN1v+kCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgKsMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFOQEINxWjZAdSZtuouwvD3qYWXMdMA0GCSqG +SIb3DQEBCwUAA4IBAQCopIBMkVUrLGpYNQJgOl2hXD15NrMaUFA9l3V6z97FuIin +msGMeZ92HtB5EcDw6QMxVeFGIZH3CqjN7Pek99R6XIoylIT0YQSyeSOMni/SVyJF +dRV7t5vr74hnAHMl4ZFyd+6ALVM8zcqP1OJqh9ioM68D3tRg7ISSTyN8w49VG5Ke +4L0e+Zwrjtt5UhX9/a7mPRoUIryzBGEHMFCPuUolZ8KIkWiyqfne3j/pjhB+rsYj +A5HYFO8Fuu8nClQb3ahEnMq3jdvD06TbYIG7WKZvw6FbxUlfyIL983XrDetDfj5B +tRKj1QB3nf+UoG6ZJHPggtjOfKAo0RO+w/mc8UAg +-----END CERTIFICATE----- diff --git a/.docker/old/cert.pem b/.docker/old/cert.pem new file mode 100644 index 0000000..04de010 --- /dev/null +++ b/.docker/old/cert.pem @@ -0,0 +1,19 @@ +-----BEGIN CERTIFICATE----- +MIIDHTCCAgWgAwIBAgIRAKmpJuBgocuMys3FKg3qLuwwDQYJKoZIhvcNAQELBQAw +DzENMAsGA1UEChMEUU5BUDAeFw0yMTEwMTgxNzUyMDBaFw0yNDEwMDIxNzUyMDBa +MCMxEDAOBgNVBAoTB3Vua25vd24xDzANBgNVBAMTBmNsaWVudDCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAO5qTawpMZrvfzCuJ/GcLyZViQHIL1ByfAdX +aYJPcxa4tr8xdSpRZAGs66hM9gxyK4SheRkvfTWCw0880bdJlEehgwCCQh02/io3 +C+w2MOE5InvqTQaazUUQ2ygy9SVPq0GNksjUrq5hrNS7XbE6sy7wiZs4oapmo1HV +ZwTRv8FziExsENLrdOFuxmC6J6iEMR49BoPlfVc4uZ1hgeSfm4YEEXxsVTX+pn8m +ESiTPwRz18w9+ya588t50r8YR4qHAAcnJS2vtFeqV3DWrzzVAGLgj26M+SUfKP3l +AV1WR0A1PC9gHTLgcGnYiJpukwfHt5R/rFpuvIZ4//YiemY/2IUCAwEAAaNgMF4w +DgYDVR0PAQH/BAQDAgOoMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAM +BgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFOQEINxWjZAdSZtuouwvD3qYWXMdMA0G +CSqGSIb3DQEBCwUAA4IBAQBoULMdhMQ+xLBjqw/LxrdBKiPddWhUOiTKSGONSrsC +pfpO5kinTy/arkg8A0lRhWtY4EGB49PX9aAsgM2QMUeL4LxZk3SOugzjYEJZnzeQ +DnEB+mMLDw99hmi9m95YtjI5PK1ACDYCmd51ymYNXXslOXQbJSHhsJtVcOBv7EAo ++A8rBTjHbSYaYRbQ7ohfKN2hf4q0ud4ozv9SAdLUd0Bij56M4n8nHZa3kOnUI3Wi +WJMZcyrsKPRTQ8EUZetIdnjj6etltHJZ5PrPp2L2QMjEc/1aJj3frgTY2ayXrmuB +wKcPALsOwKXw4ckr5/jICG8QtzuztRiankxPTliMJrbf +-----END CERTIFICATE----- diff --git a/.docker/old/key.pem b/.docker/old/key.pem new file mode 100644 index 0000000..d0c9c93 --- /dev/null +++ b/.docker/old/key.pem @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEA7mpNrCkxmu9/MK4n8ZwvJlWJAcgvUHJ8B1dpgk9zFri2vzF1 +KlFkAazrqEz2DHIrhKF5GS99NYLDTzzRt0mUR6GDAIJCHTb+KjcL7DYw4Tkie+pN +BprNRRDbKDL1JU+rQY2SyNSurmGs1LtdsTqzLvCJmzihqmajUdVnBNG/wXOITGwQ +0ut04W7GYLonqIQxHj0Gg+V9Vzi5nWGB5J+bhgQRfGxVNf6mfyYRKJM/BHPXzD37 +Jrnzy3nSvxhHiocAByclLa+0V6pXcNavPNUAYuCPboz5JR8o/eUBXVZHQDU8L2Ad +MuBwadiImm6TB8e3lH+sWm68hnj/9iJ6Zj/YhQIDAQABAoIBACU+mg+xB7zKeTYj +nr3RxlPYvOR4X1vT5qhG8YaX3sTH6lSH52PK/zJ7zvyluTJMi5vWldJnZsn7OYOh +XqmhZvahtpNXxfhGZQI3QzeNZ6lngYmWGp5ThImrjnEDNOS1Q22kLjANeZRoUdWR +x5suLlvA295RxH+YNR9NlSBdm/UeSA9YS3fAe7IAcW0kZMWRGCpMpZKt0s82msgx +6CDDVHUAEUeXT6WCCKG3oAf+ZFX4Mp86dhMIad4RctiNssYTiR4aZ1otv9MPy73g +ND5FhqyfG7moVTJRPnLMDdRUDDwckQkkt4VMJyYqJlcxfDdKIP+3foOE4ov+Fuud +5M+ujekCgYEA/bim7aclaUPng4fYYvwBxU2vgKFTYWTpeYFiXLsZDRn5+4lm1tPQ +5J4DZ792xj1PrOP03DFZ0/VW1gWuCTozPvs0UiqHblSZidCsZGIUMWLrcN8eZeFj +0Hm1CEj3hv5OyPeX4JeeH9aEEiGI61T++/poWrAvj1V+Pe+ROy/JEXsCgYEA8I51 +zTP5+CZAaV12WXQzqZeFeX/d1jT8vAN5gtBSXZqvdgbPgJA+6D4/Rgz7jp+FK/jP +0I5LDDh5FMdnda4jQ8f/SlIx+a1CJI0DSCRfkOJOoNELFZ+wUxBzxUKIPrpnWLhQ +PygYPtBozdsSFBmlRMhWeb9drktrNQFlYK4Nnf8CgYBlNuRgqe0isRQKRIbt9do+ ++16n0bORhtAcyKCUnY7AyzwOPCHqUVVj3iU9ngOj0ZGXRtjHfmh3Rcf+WQW0aKNI +3K1imdStDtKxR6193iJwESYbQOa/fcpzwBmX1IPqNkj3os3TqqhJyymkkfws5RtT +KfG3O9G9PD3AN3GYStfLQQKBgQCmVovkog02ZxThBsygXHagzXJxKla2GRut0mVC +bFSX/y9W2KzBRH0LUIemI7IK1Alc94aTuuDwCVjIYn4K5Kfj5baEqMN/1ytGZO+h +Ae3HHIWsNACLKkndliHHhBL79R8jPQfYNBxXyvq9Zb9hgL5ECpepRgc8T1BJbbax +HImz9wKBgQCo7107d2TOcmDyr52kNWLK8+fhU7KGbtLqwXzPtZYPxOrJtMKmz99Q +VPwubXDgUBxkEnmOxaJA3PACNvkHE9r635mmZcO04Kd9hMsmeT2+nympBsVh5BNT +SELs4gv8je/2NmsyI8nELAQk69YG3of6POQjFDrX/LKcAt0yQOm9pg== +-----END RSA PRIVATE KEY----- diff --git a/.docker/old2/ca.pem b/.docker/old2/ca.pem new file mode 100644 index 0000000..707740a --- /dev/null +++ b/.docker/old2/ca.pem @@ -0,0 +1,35 @@ +-----BEGIN CERTIFICATE----- +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 +Diy/Deow/fsxtivSIYameqg= +-----END CERTIFICATE----- diff --git a/.docker/old2/cert.pem b/.docker/old2/cert.pem new file mode 100644 index 0000000..4f9c066 --- /dev/null +++ b/.docker/old2/cert.pem @@ -0,0 +1,30 @@ +-----BEGIN CERTIFICATE----- +MIIFHTCCAwWgAwIBAgIUf4D1uYzTZSWFY14XVbDy3usRWYcwDQYJKoZIhvcNAQEL +BQAwWjEaMBgGA1UEAxMRQ29udGFpbmVyIFN0YXRpb24xDTALBgNVBAoTBFFOQVAx +DzANBgNVBAgTBlRhaXBlaTEPMA0GA1UEBxMGVGFpcGVpMQswCQYDVQQGEwJUVzAe +Fw0yMjA3MjAxMDM3MzBaFw0yMzA3MjAxMDM3MzBaMBExDzANBgNVBAMTBmNsaWVu +dDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMOrUh30JIetF5xxZh93 +2A0LAvKfvgCZsqukKpfnJ3LiXnA7Ukd4/9DwZL19jj6D7xPX4AyQLDqXeqjHEPQj +0SCqdC3YBoInWnqggXCvDjoiIh6yXdZu2YSAh4N6pYTdE0mexxZ6qSF7obz1NpDF +nGhZGLf5jd4alCltdKG3f1jJjWY2QUbV2g3lqOWQNdnWVU3/NT6iEA/jyszXuGPE +6ikz4LjxYiqlO1SixujUf3Vg8huxQj5p7crjbpVmxRmfhBZXfaiayc18Z6pJPn4w +BeBkzb05mK0qq91Quym6BazU+MftEkk3L5svC7fowEqvSTkdkPeL1xeCnI5jpzi/ +mu9EEONRnSujArOvdWTF3sURnQm3DtemF2e+K0HlQ26bq3yODJpnE2oXczYlTkjT +SrwHHRhcq1NB008FQbTOiGMXp+crHEe9jO8MrDtbyhHoHUhxhcpKQ+6EcGiRFwiQ +Dpdly/5DVQmOgkku5kDf9G1W6edQjybEV5lEE0FU/UmYpn02VEYcHMmeJw8vSCWk +IkGYtRUek25ZJDdFsoTHrErxu90V/czWGUAh3opicHViZEBfzwlaoeq/QnCm5KSJ +leNFFf3HYkB6bTXYfqFN6Ovfyz0HN0uG7ZiYGykm4w8YvMr2aJpvKRZ151S4SxuP +VVHb0BMLZO9GnIwSu6dXKg2FAgMBAAGjJDAiMBMGA1UdJQQMMAoGCCsGAQUFBwMC +MAsGA1UdDwQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAgEAmuiNdyUpvQF7ZAI7xala +2Z5wwHrN0toLJvcLDurH2CI9S+TqgGdnoCA0kwrxmVEx6LR+kJMwpQzX3bd/gKEZ +cScWIszwgk0RoO9GA9aJBQllepqb4y8hOH3wrslH1LckBMxSuUpNJi6QARCENMn5 +7C5vyQqB6LF31hfqVHFavJomaDR1gCqwH0UGAeSkhjiXlFPKibs07M67+moax6Ut +tjjgDr8ReN+0Xs89MLLHrzYSItjZbRxTmp6yC/KuccHDyiELSltIHCEZCwWrInRF +EyZthPMeLLFbPLciapgFWU1AbLYH37A5nizhsyLlzj5AQzOn7Y4zhR41/MgowuT5 +2qn9qlDx3beQ527JEWjGLG2GysnNCOQsLtUWZiRvLABEG7j9D98yK8HHha4+Dor8 +MIv5aHUfQ7bnfQjpvWC01adaFztaX6RtzuqDKFXU1WZcp10iA/OT+BQhh1AU7UmS +/VO94+64ktj5NM/Q0lZ4aeTHTYyAt2L+iGXZ6FajVflG0fr++yho6PqENmcWWxNr +lOIl5IzDoWBcqxK/pRKJsnYHWuVPhVkFb2IPLB0nfKs68/7iSXRbCfwP7InOeCZK +Bom33k3G+a/rs1dwW1O4StzzcglBxGkLnHXy29BQarvH79AizaEbA791NPbcL9ws +oHYyRYBcLny7j4EvTF1FgeU= +-----END CERTIFICATE----- diff --git a/.docker/old2/key.pem b/.docker/old2/key.pem new file mode 100644 index 0000000..8b29c3f --- /dev/null +++ b/.docker/old2/key.pem @@ -0,0 +1,51 @@ +-----BEGIN RSA PRIVATE KEY----- +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 +-----END RSA PRIVATE KEY----- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..33ebf5a --- /dev/null +++ b/.gitignore @@ -0,0 +1,36 @@ +# Local .terraform directories +**/.terraform/* + +# .tfstate files +*.tfstate +*.tfstate.* + +# Crash log files +crash.log +crash.*.log + +# Exclude all .tfvars files, which are likely to contain sensitive data, such as +# password, private keys, and other secrets. These should not be part of version +# control as they are data points which are potentially sensitive and subject +# to change depending on the environment. +*.tfvars +*.tfvars.json + +# Ignore override files as they are usually used to override resources locally and so +# are not checked in +override.tf +override.tf.json +*_override.tf +*_override.tf.json + +# Include override files you do wish to add to version control using negated pattern +# !example_override.tf + +# Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan +# example: *tfplan* + +# Ignore CLI configuration files +.terraformrc +terraform.rc + +youless-exporter/node_modules \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/git_toolbox_prj.xml b/.idea/git_toolbox_prj.xml new file mode 100644 index 0000000..02b915b --- /dev/null +++ b/.idea/git_toolbox_prj.xml @@ -0,0 +1,15 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/jpa-buddy.xml b/.idea/jpa-buddy.xml new file mode 100644 index 0000000..966d5f5 --- /dev/null +++ b/.idea/jpa-buddy.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..d79bd4e --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..003b5f4 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/qnap-containers-famf.iml b/.idea/qnap-containers-famf.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/qnap-containers-famf.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.terraform.lock.hcl b/.terraform.lock.hcl new file mode 100644 index 0000000..db21461 --- /dev/null +++ b/.terraform.lock.hcl @@ -0,0 +1,23 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/kreuzwerker/docker" { + version = "2.15.0" + constraints = "2.15.0" + hashes = [ + "h1:NkSDvVnpey6pAcrq1uYnOH7nr4m/mJ5lw5f62ieXcyE=", + "zh:0241e5c7b66c14aa54e367dfe380fbde8388d3254cbe8a70717c12f71897e82b", + "zh:0f162f0a01ffe9eec32e78dfc2a5b05a373230c41f041439efa3f4b68903fdcb", + "zh:1c222c1425fbb0367154bcb8e4d87b19d6eae133fbb341f73102fa3b300f34bf", + "zh:679206433e31d8fa69d95167af6d2cd762218e89811b735ee20bd8da19f97854", + "zh:a16baab045bc7a709a9767816304cc5548aa2ee0b72c0eee49e3826e6a46a3fd", + "zh:a29c4e304a6a7faf5b651a61a91a1aa2e837591cff049fbe1c747b6319e43956", + "zh:bed7a69dbb9a024aecfac840ca2ac2f1527062f3d9c8c718e4e81d464b5ad329", + "zh:c22aa10806de216b6aa0b36a2c1114a9fdaa5b47925aaad3333de3ce24cc52c9", + "zh:d034295663d8a39035fd6fdf0488b72544b13f48acaee797af967343248676f8", + "zh:d9001dfeac0db1799d8ab9d04be090522529baae0dba7f7e82b71f2168f05582", + "zh:d9f3eb7ef8f256eb9148d72bd4a00e34f3be5570484598e26b603cbdc5eed923", + "zh:ef573f1e0f000127fa9f569c8ee320f03ba1d302a6fbf9aac8300efa6fc6f4b2", + "zh:ef7e246b4205202161b4119c10a1282f74243e029508184132731f9f6f6d9f4c", + ] +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..2bfc253 --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ +# Instructions + + + +Terraform cannot create a qnet network, so we do it manually and then import into Terraform. + +``` +./dockerx.bat network create -d qnet --ipam-driver=qnet --ipam-opt=iface=eth1 --subnet=192.168.2.0/24 --gateway=192.168.2.254 terraform-static-eth1-shared --opt=iface=eth1 +``` + +``` +terraform import docker_network.bridge 397392d6f21a3e2ff84fe5eda4165a77be1f19f92fa05f02d6c63dbf930471ff +``` + +# Upgrading +Current version: Terraform v0.12.20 ++ provider.docker v2.6.0 diff --git a/appdata/homeassistant/configuration.yml b/appdata/homeassistant/configuration.yml new file mode 100644 index 0000000..37b5b36 --- /dev/null +++ b/appdata/homeassistant/configuration.yml @@ -0,0 +1,69 @@ +climate: + - platform: mqtt + unique_id: mhi0001a + name: MHI + initial: 21 + min_temp: 18 + max_temp: 30 + modes: + - "auto" + - "dry" + - "cool" + - "fan_only" + - "heat" + - "off" + swing_modes: + - "1" + - "2" + - "3" + - "4" + - "Swing" + - "?" + fan_modes: + - "1" + - "2" + - "3" + - "4" + mode_command_topic: "MHI-AC-Ctrl-F/set/Mode" + temperature_command_topic: "MHI-AC-Ctrl-F/set/Tsetpoint" + fan_mode_command_topic: "MHI-AC-Ctrl-F/set/Fan" + swing_mode_command_topic: "MHI-AC-Ctrl-F/set/Vanes" + current_temperature_topic: "MHI-AC-Ctrl-F/Troom" + mode_state_topic: "MHI-AC-Ctrl-F/Mode" + temperature_state_topic: "MHI-AC-Ctrl-F/Tsetpoint" + fan_mode_state_topic: "MHI-AC-Ctrl-F/Fan" + swing_mode_state_topic: "MHI-AC-Ctrl-F/Vanes" + - platform: mqtt + unique_id: mhi0002a + name: MHI + initial: 21 + min_temp: 18 + max_temp: 30 + modes: + - "auto" + - "dry" + - "cool" + - "fan_only" + - "heat" + - "off" + swing_modes: + - "1" + - "2" + - "3" + - "4" + - "Swing" + - "?" + fan_modes: + - "1" + - "2" + - "3" + - "4" + mode_command_topic: "MHI-AC-Ctrl-B/set/Mode" + temperature_command_topic: "MHI-AC-Ctrl-B/set/Tsetpoint" + fan_mode_command_topic: "MHI-AC-Ctrl-B/set/Fan" + swing_mode_command_topic: "MHI-AC-Ctrl-B/set/Vanes" + current_temperature_topic: "MHI-AC-Ctrl-B/Troom" + mode_state_topic: "MHI-AC-Ctrl-B/Mode" + temperature_state_topic: "MHI-AC-Ctrl-B/Tsetpoint" + fan_mode_state_topic: "MHI-AC-Ctrl-B/Fan" + swing_mode_state_topic: "MHI-AC-Ctrl-B/Vanes" diff --git a/appdata/mosquitto/mosquitto.conf b/appdata/mosquitto/mosquitto.conf new file mode 100644 index 0000000..a12e3fd --- /dev/null +++ b/appdata/mosquitto/mosquitto.conf @@ -0,0 +1,6 @@ +persistence true +persistence_location /mosquitto/data/ +log_dest file /mosquitto/log/mosquitto.log + +allow_anonymous false +password_file /mosquitto/config/passwords diff --git a/appdata/mosquitto/mosquitto_passwords b/appdata/mosquitto/mosquitto_passwords new file mode 100644 index 0000000..e69de29 diff --git a/appdata/mqtt-exporter/conf.yaml b/appdata/mqtt-exporter/conf.yaml new file mode 100644 index 0000000..ad2409b --- /dev/null +++ b/appdata/mqtt-exporter/conf.yaml @@ -0,0 +1,8 @@ +mqtt: + host: "192.168.2.125" + auth: # Optional If included, username_pw_set() is called with user/password + username: 'mqtt-exporter' # Required (when auth is present) + password: 'XKk6725HrTpPW5zkWy9f' # Optional + +logging: + level: 'debug' # Optional default 'info' diff --git a/appdata/mqtt-exporter/metrics.yaml b/appdata/mqtt-exporter/metrics.yaml new file mode 100644 index 0000000..9cde959 --- /dev/null +++ b/appdata/mqtt-exporter/metrics.yaml @@ -0,0 +1,252 @@ +# Example metric definition +metrics: + - name: 'mhi_ac_ctrl_f_mode' + help: 'Mode' + type: 'gauge' + topic: 'MHI-AC-Ctrl-F/Mode' + label_configs: + - source_labels: [ '__value__' ] + regex: '^(.*)$' + target_label: 'state' + replacement: '\1' + action: 'replace' + - source_labels: [ '__value__' ] + replacement: '1' + target_label: '__value__' + action: 'replace' + + - name: 'mhi_ac_ctrl_f_power' + help: 'Power' + type: 'gauge' + topic: 'MHI-AC-Ctrl-F/Power' + label_configs: + - source_labels: [ '__value__' ] + regex: '^(.*)$' + target_label: 'state' + replacement: '\1' + action: 'replace' + - source_labels: [ '__value__' ] + replacement: '1' + target_label: '__value__' + action: 'replace' + + - name: 'mhi_ac_ctrl_f_troom' + help: 'Room measured temperature' + type: 'gauge' + topic: 'MHI-AC-Ctrl-F/Troom' + + - name: 'mhi_ac_ctrl_f_tsetpoint' + help: 'Room setpoint temperature' + type: 'gauge' + topic: 'MHI-AC-Ctrl-F/Tsetpoint' + + - name: 'mhi_ac_ctrl_f_opdata_td' + help: 'Discharge Pipe Temperature' + type: 'gauge' + topic: 'MHI-AC-Ctrl-F/OpData/TD' + + - name: 'mhi_ac_ctrl_f_opdata_ct' + help: 'Current' + type: 'gauge' + topic: 'MHI-AC-Ctrl-F/OpData/CT' + + - name: 'mhi_ac_ctrl_f_opdata_tdsh' + help: 'Compressor discharge pipe super heat' + type: 'gauge' + topic: 'MHI-AC-Ctrl-F/OpData/TDSH' + + - name: 'mhi_ac_ctrl_f_opdata_ou_fanspeed' + help: 'Outdoor unit fan speed' + type: 'gauge' + topic: 'MHI-AC-Ctrl-F/OpData/OU-FANSPEED' + + - name: 'mhi_ac_ctrl_f_opdata_ou_defrost' + help: 'Defrost control on/off' + type: 'gauge' + topic: 'MHI-AC-Ctrl-F/OpData/DEFROST' + label_configs: + - source_labels: [ '__value__' ] + regex: '^(.*)$' + target_label: 'state' + replacement: '\1' + action: 'replace' + - source_labels: [ '__value__' ] + replacement: '1' + target_label: '__value__' + action: 'replace' + + - name: 'mhi_ac_ctrl_f_opdata_ou_eev1' + help: 'Pulse rate of the outdoor unit expansion valve EEVC' + type: 'gauge' + topic: 'MHI-AC-Ctrl-F/OpData/OU-EEV1' + + - name: 'mhi_ac_ctrl_f_opdata_tsetpoint' + help: 'Set temperature' + type: 'gauge' + topic: 'MHI-AC-Ctrl-F/OpData/Tsetpoint' + + - name: 'mhi_ac_ctrl_f_opdata_return_air' + help: 'Return air sensor temperature' + type: 'gauge' + topic: 'MHI-AC-Ctrl-F/OpData/RETURN-AIR' + + - name: 'mhi_ac_ctrl_f_opdata_thi_r1' + help: 'Indoor heat exchanger sensor (on U bend)' + type: 'gauge' + topic: 'MHI-AC-Ctrl-F/OpData/THI-R1' + + - name: 'mhi_ac_ctrl_f_opdata_thi_r2' + help: 'Indoor heat exchanger sensor (on Capillary)' + type: 'gauge' + topic: 'MHI-AC-Ctrl-F/OpData/THI-R2' + + - name: 'mhi_ac_ctrl_f_opdata_thi_r3' + help: 'Indoor heat exchanger sensor (on suction header) ' + type: 'gauge' + topic: 'MHI-AC-Ctrl-F/OpData/THI-R3' + + - name: 'mhi_ac_ctrl_f_opdata_iu_fanspeed' + help: 'Indoor unit fan speed' + type: 'gauge' + topic: 'MHI-AC-Ctrl-F/OpData/IU-FANSPEED' + + - name: 'mhi_ac_ctrl_f_opdata_outdoor' + help: 'Outdoor air temperature' + type: 'gauge' + topic: 'MHI-AC-Ctrl-F/OpData/OUTDOOR' + + - name: 'mhi_ac_ctrl_f_opdata_tho_r1' + help: 'Outdoor unit heat exchanger sensor' + type: 'gauge' + topic: 'MHI-AC-Ctrl-F/OpData/THO-R1' + + - name: 'mhi_ac_ctrl_f_opdata_comp' + help: 'Compressor frequency' + type: 'gauge' + topic: 'MHI-AC-Ctrl-F/OpData/COMP' + + + - name: 'mhi_ac_ctrl_b_mode' + help: 'Mode' + type: 'gauge' + topic: 'MHI-AC-Ctrl-B/Mode' + label_configs: + - source_labels: [ '__value__' ] + regex: '^(.*)$' + target_label: 'state' + replacement: '\1' + action: 'replace' + - source_labels: [ '__value__' ] + replacement: '1' + target_label: '__value__' + action: 'replace' + + - name: 'mhi_ac_ctrl_b_power' + help: 'Power' + type: 'gauge' + topic: 'MHI-AC-Ctrl-B/Power' + label_configs: + - source_labels: [ '__value__' ] + regex: '^(.*)$' + target_label: 'state' + replacement: '\1' + action: 'replace' + - source_labels: [ '__value__' ] + replacement: '1' + target_label: '__value__' + action: 'replace' + + - name: 'mhi_ac_ctrl_b_troom' + help: 'Room measured temperature' + type: 'gauge' + topic: 'MHI-AC-Ctrl-B/Troom' + + - name: 'mhi_ac_ctrl_b_tsetpoint' + help: 'Room setpoint temperature' + type: 'gauge' + topic: 'MHI-AC-Ctrl-B/Tsetpoint' + + - name: 'mhi_ac_ctrl_b_opdata_td' + help: 'Discharge Pipe Temperature' + type: 'gauge' + topic: 'MHI-AC-Ctrl-B/OpData/TD' + + - name: 'mhi_ac_ctrl_b_opdata_ct' + help: 'Current' + type: 'gauge' + topic: 'MHI-AC-Ctrl-B/OpData/CT' + + - name: 'mhi_ac_ctrl_b_opdata_tdsh' + help: 'Compressor discharge pipe super heat' + type: 'gauge' + topic: 'MHI-AC-Ctrl-B/OpData/TDSH' + + - name: 'mhi_ac_ctrl_b_opdata_ou_fanspeed' + help: 'Outdoor unit fan speed' + type: 'gauge' + topic: 'MHI-AC-Ctrl-B/OpData/OU-FANSPEED' + + - name: 'mhi_ac_ctrl_b_opdata_ou_defrost' + help: 'Defrost control on/off' + type: 'gauge' + topic: 'MHI-AC-Ctrl-B/OpData/DEFROST' + label_configs: + - source_labels: [ '__value__' ] + regex: '^(.*)$' + target_label: 'state' + replacement: '\1' + action: 'replace' + - source_labels: [ '__value__' ] + replacement: '1' + target_label: '__value__' + action: 'replace' + + - name: 'mhi_ac_ctrl_b_opdata_ou_eev1' + help: 'Pulse rate of the outdoor unit expansion valve EEVC' + type: 'gauge' + topic: 'MHI-AC-Ctrl-B/OpData/OU-EEV1' + + - name: 'mhi_ac_ctrl_b_opdata_tsetpoint' + help: 'Set temperature' + type: 'gauge' + topic: 'MHI-AC-Ctrl-B/OpData/Tsetpoint' + + - name: 'mhi_ac_ctrl_b_opdata_return_air' + help: 'Return air sensor temperature' + type: 'gauge' + topic: 'MHI-AC-Ctrl-B/OpData/RETURN-AIR' + + - name: 'mhi_ac_ctrl_b_opdata_thi_r1' + help: 'Indoor heat exchanger sensor (on U bend)' + type: 'gauge' + topic: 'MHI-AC-Ctrl-B/OpData/THI-R1' + + - name: 'mhi_ac_ctrl_b_opdata_thi_r2' + help: 'Indoor heat exchanger sensor (on Capillary)' + type: 'gauge' + topic: 'MHI-AC-Ctrl-B/OpData/THI-R2' + + - name: 'mhi_ac_ctrl_b_opdata_thi_r3' + help: 'Indoor heat exchanger sensor (on suction header) ' + type: 'gauge' + topic: 'MHI-AC-Ctrl-B/OpData/THI-R3' + + - name: 'mhi_ac_ctrl_b_opdata_iu_fanspeed' + help: 'Indoor unit fan speed' + type: 'gauge' + topic: 'MHI-AC-Ctrl-B/OpData/IU-FANSPEED' + + - name: 'mhi_ac_ctrl_b_opdata_outdoor' + help: 'Outdoor air temperature' + type: 'gauge' + topic: 'MHI-AC-Ctrl-B/OpData/OUTDOOR' + + - name: 'mhi_ac_ctrl_b_opdata_tho_r1' + help: 'Outdoor unit heat exchanger sensor' + type: 'gauge' + topic: 'MHI-AC-Ctrl-B/OpData/THO-R1' + + - name: 'mhi_ac_ctrl_b_opdata_comp' + help: 'Compressor frequency' + type: 'gauge' + topic: 'MHI-AC-Ctrl-B/OpData/COMP' diff --git a/appdata/prometheus/prometheus.yml b/appdata/prometheus/prometheus.yml new file mode 100644 index 0000000..e04ec8c --- /dev/null +++ b/appdata/prometheus/prometheus.yml @@ -0,0 +1,13 @@ +scrape_configs: + - job_name: hass + scrape_interval: 60s + metrics_path: /api/prometheus + authorization: + credentials: '' + static_configs: + - targets: ['192.168.2.70:8123'] + - job_name: mqtt + scrape_interval: 30s + metrics_path: /metrics + static_configs: + - targets: ['192.168.2.123:9344'] diff --git a/docker-qnap.tf b/docker-qnap.tf new file mode 100644 index 0000000..b905bba --- /dev/null +++ b/docker-qnap.tf @@ -0,0 +1,31 @@ +terraform { + required_providers { + docker = { + source = "kreuzwerker/docker" + version = "2.15.0" + } + } +} + + +provider "docker" { + host = "tcp://192.168.2.250:2376" + + cert_path = pathexpand(".docker") +} + +resource "docker_network" "bridge" { + name = "terraform-static-eth1-shared" + driver = "qnet" + ipam_driver = "qnet" + internal = false + attachable = false + ingress = false + ipv6 = false + + ipam_config { + subnet = "192.168.2.0/24" + gateway = "192.168.2.254" + } +} + diff --git a/dockerx.bat b/dockerx.bat new file mode 100644 index 0000000..216c40a --- /dev/null +++ b/dockerx.bat @@ -0,0 +1,6 @@ +docker ^ + --tlsverify ^ + -H=192.168.2.15:2376 ^ + --tlscacert=.docker\ca.pem ^ + --tlscert=.docker\cert.pem ^ + --tlskey=.docker\key.pem %* diff --git a/env.bat b/env.bat new file mode 100644 index 0000000..2329354 --- /dev/null +++ b/env.bat @@ -0,0 +1,3 @@ +SET DOCKER_CERT_PATH=c:\Dev\qnap-containers-famf\.docker +SET DOCKER_HOST=tcp://192.168.2.15:2376 +SET DOCKER_TLS=1 diff --git a/grafana.tf b/grafana.tf new file mode 100644 index 0000000..f442639 --- /dev/null +++ b/grafana.tf @@ -0,0 +1,29 @@ +resource "docker_image" "grafana" { + name = "grafana/grafana:latest" +} + +resource "docker_container" "grafana" { + image = docker_image.grafana.latest + name = "grafana" + + restart = "always" + + mounts { + read_only = false + target = "/var/lib/grafana" + source = "/share/appdata/grafana" + type = "bind" + } + + networks_advanced { + name = docker_network.bridge.name + ipv4_address = "192.168.2.248" + } + + lifecycle { + ignore_changes = [ + ulimit, + log_opts + ] + } +} diff --git a/home-assistant.tf b/home-assistant.tf new file mode 100644 index 0000000..c835089 --- /dev/null +++ b/home-assistant.tf @@ -0,0 +1,50 @@ +data "docker_registry_image" "home-assistant" { + name = "homeassistant/home-assistant" +} + +resource "docker_image" "home-assistant" { + name = data.docker_registry_image.home-assistant.name + pull_triggers = [data.docker_registry_image.home-assistant.sha256_digest] +} + +resource "docker_container" "home-assistant" { + image = docker_image.home-assistant.latest + name = "home-assistant" + + mounts { + read_only = false + target = "/config" + source = "/share/appdata/home-assistant" + type = "bind" + } + + restart = "always" + + // Untested + depends_on = [ + docker_container.mariadb + ] + + networks_advanced { + name = docker_network.bridge.name + ipv4_address = "192.168.2.249" + } + +# Home assistant shouldn't have the ttyACM0 device, managed by zigbee2mqtt +# devices { +# container_path = "/dev/ttyACM0" +# host_path = "/dev/ttyACM0" +# permissions = "rwm" +# } + + networks_advanced { + name = docker_network.mariadb.name + } + + lifecycle { + ignore_changes = [ + ulimit, + log_opts + ] + } +} diff --git a/mariadb.tf b/mariadb.tf new file mode 100644 index 0000000..96308ec --- /dev/null +++ b/mariadb.tf @@ -0,0 +1,42 @@ +data "docker_registry_image" "mariadb" { + name = "mariadb:10.4" +} + +resource "docker_image" "mariadb" { + name = data.docker_registry_image.mariadb.name + pull_triggers = [data.docker_registry_image.mariadb.sha256_digest] +} + +resource "docker_network" "mariadb" { + name = "mariadb" +} + +resource "docker_container" "mariadb" { + image = docker_image.mariadb.latest + name = "mariadb" + + mounts { + read_only = false + target = "/var/lib/mysql" + source = "/share/appdata/mariadb" + type = "bind" + } + + restart = "always" + + networks_advanced { + name = docker_network.mariadb.name + } + + networks_advanced { + name = docker_network.bridge.name + ipv4_address = "192.168.2.247" + } + + lifecycle { + ignore_changes = [ + ulimit, + log_opts + ] + } +} diff --git a/mosquitto.tf b/mosquitto.tf new file mode 100644 index 0000000..33dc0c6 --- /dev/null +++ b/mosquitto.tf @@ -0,0 +1,52 @@ +data "docker_registry_image" "mosquitto" { + name = "eclipse-mosquitto:2" +} + +resource "docker_image" "mosquitto" { + name = data.docker_registry_image.mosquitto.name + pull_triggers = [data.docker_registry_image.mosquitto.sha256_digest] +} + +resource "docker_network" "mosquitto" { + name = "mosquitto" +} + +resource "docker_container" "mosquitto" { + image = docker_image.mosquitto.latest + name = "mosquitto" + + mounts { + read_only = false + target = "/mosquitto/config" + source = "/share/appdata/mosquitto/config" + type = "bind" + } + + mounts { + read_only = false + target = "/mosquitto/data" + source = "/share/appdata/mosquitto/data" + type = "bind" + } + + mounts { + read_only = false + target = "/mosquitto/log" + source = "/share/appdata/mosquitto/log" + type = "bind" + } + + restart = "always" + + networks_advanced { + name = docker_network.bridge.name + ipv4_address = "192.168.2.125" + } + + lifecycle { + ignore_changes = [ + ulimit, + log_opts + ] + } +} diff --git a/mqtt-exporter.tf b/mqtt-exporter.tf new file mode 100644 index 0000000..12a0971 --- /dev/null +++ b/mqtt-exporter.tf @@ -0,0 +1,38 @@ +data "docker_registry_image" "mqtt-exporter" { + name = "fhemberger/mqtt_exporter:v1.4.1" +} + +resource "docker_image" "mqtt-exporter" { + name = data.docker_registry_image.mqtt-exporter.name + pull_triggers = [data.docker_registry_image.mqtt-exporter.sha256_digest] +} + +resource "docker_network" "mqtt-exporter" { + name = "mqtt-exporter" +} + +resource "docker_container" "mqtt-exporter" { + image = docker_image.mqtt-exporter.latest + name = "mqtt-exporter" + + mounts { + read_only = false + target = "/usr/src/app/conf" + source = "/share/appdata/mqtt-exporter" + type = "bind" + } + + restart = "always" + + networks_advanced { + name = docker_network.bridge.name + ipv4_address = "192.168.2.245" + } + + lifecycle { + ignore_changes = [ + ulimit, + log_opts + ] + } +} diff --git a/node-red.tf b/node-red.tf new file mode 100644 index 0000000..23fed25 --- /dev/null +++ b/node-red.tf @@ -0,0 +1,33 @@ +data "docker_registry_image" "node-red" { + name = "nodered/node-red:latest" +} + +resource "docker_image" "node-red" { + name = data.docker_registry_image.node-red.name + pull_triggers = [data.docker_registry_image.node-red.sha256_digest] +} + +resource "docker_container" "node-red" { + image = docker_image.node-red.latest + name = "node-red" + + mounts { + target = "/data" + source = "/share/appdata/node-red" + type = "bind" + } + + restart = "always" + + networks_advanced { + name = docker_network.bridge.name + ipv4_address = "192.168.2.244" + } + + lifecycle { + ignore_changes = [ + ulimit, + log_opts + ] + } +} diff --git a/prometheus.tf b/prometheus.tf new file mode 100644 index 0000000..7ff2603 --- /dev/null +++ b/prometheus.tf @@ -0,0 +1,43 @@ +data "docker_registry_image" "prometheus" { + name = "prom/prometheus:latest" +} + +resource "docker_image" "prometheus" { + name = data.docker_registry_image.prometheus.name + pull_triggers = [data.docker_registry_image.prometheus.sha256_digest] +} + +resource "docker_container" "prometheus" { + image = docker_image.prometheus.latest + name = "prometheus" + + command = ["--config.file=/etc/prometheus/prometheus.yml","--storage.tsdb.path=/prometheus", "--web.console.libraries=/usr/share/prometheus/console_libraries","--web.console.templates=/usr/share/prometheus/consoles", "--storage.tsdb.retention.time=2y"] + + mounts { + read_only = false + target = "/etc/prometheus" + source = "/share/appdata/prometheus/config" + type = "bind" + } + + mounts { + read_only = false + target = "/prometheus" + source = "/share/appdata/prometheus/data" + type = "bind" + } + + restart = "always" + + networks_advanced { + name = docker_network.bridge.name + ipv4_address = "192.168.2.243" + } + + lifecycle { + ignore_changes = [ + ulimit, + log_opts + ] + } +} diff --git a/prometheus.yml b/prometheus.yml new file mode 100644 index 0000000..d291d08 --- /dev/null +++ b/prometheus.yml @@ -0,0 +1,5 @@ +scrape_configs: + - job_name: youless + scrape_interval: 1s + static_configs: + - targets: ['192.168.2.82:4202'] diff --git a/zigbee2mqtt.tf b/zigbee2mqtt.tf new file mode 100644 index 0000000..8b5b225 --- /dev/null +++ b/zigbee2mqtt.tf @@ -0,0 +1,52 @@ +data "docker_registry_image" "zigbee-2-mqtt" { + name = "koenkk/zigbee2mqtt" +} + +resource "docker_image" "zigbee-2-mqtt" { + name = data.docker_registry_image.zigbee-2-mqtt.name + pull_triggers = [data.docker_registry_image.zigbee-2-mqtt.sha256_digest] +} + +resource "docker_container" "zigbee-2-mqtt" { + image = docker_image.zigbee-2-mqtt.latest + name = "zigbee-2-mqtt" + + mounts { + target = "/app/data" + source = "/share/appdata/zigbee2mqtt" + type = "bind" + } + + mounts { + target = "/run/udev" + source = "/run/udev" + type = "bind" + read_only = true + } + + + env = [ + "TZ=Europe/Amsterdam" + ] + + restart = "always" + + + networks_advanced { + name = docker_network.bridge.name + ipv4_address = "192.168.2.242" + } + + devices { + container_path = "/dev/ttyACM0" + host_path = "/dev/ttyACM0" + permissions = "rwm" + } + + lifecycle { + ignore_changes = [ + ulimit, + log_opts + ] + } +}