Yes, LDP VPLS is a pretty standard deployment. Where it can get confusing is the various types of PE-CE interface encapsulation depending upon the type of service you're running. In your case of a simple ethernet circuit, it's easy.
Here's a simple example.
Topology
CE1 [ge-0/0/0] <=> [ge-0/0/1] PE1 [ge-0/0/0] <= LDP => [ge-0/0/0] PE2 [ge-0/0/1] <=> [ge-0/0/0] CE2
For example's sake, CE1 and CE2 have a IP's in the same subnet and have no idea they're connected to a VPLS.
CE1
set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.10/24
CE2
set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.20/24
For the PE's, I'm going to skip the LDP configuration and only include what's required for VPLS.
PE1
set interfaces ge-0/0/1 description to-CE1
set interfaces ge-0/0/1 encapsulation ethernet-vpls
set interfaces ge-0/0/1 unit 0 family vpls
set interfaces lo0 unit 0 family inet address 1.1.1.1/32
set interfaces lo0 unit 0 family mpls
set routing-instances VPLS instance-type vpls
set routing-instances VPLS interface ge-0/0/1.0
set routing-instances VPLS protocols vpls no-control-word
set routing-instances VPLS protocols vpls no-tunnel-services
set routing-instances VPLS protocols vpls vpls-id 70
set routing-instances VPLS protocols vpls mtu 9192
set routing-instances VPLS protocols vpls ignore-mtu-mismatch
set routing-instances VPLS protocols vpls neighbor 2.2.2.2 # The loopback of the remote LDP neighbor (PE2)
PE2
set interfaces ge-0/0/1 description to-CE2
set interfaces ge-0/0/1 encapsulation ethernet-vpls
set interfaces ge-0/0/1 unit 0 family vpls
set interfaces lo0 unit 0 family inet address 2.2.2.2/32
set interfaces lo0 unit 0 family mpls
set routing-instances VPLS instance-type vpls
set routing-instances VPLS interface ge-0/0/1.0
set routing-instances VPLS protocols vpls no-control-word
set routing-instances VPLS protocols vpls no-tunnel-services
set routing-instances VPLS protocols vpls vpls-id 70
set routing-instances VPLS protocols vpls mtu 9192
set routing-instances VPLS protocols vpls ignore-mtu-mismatch
set routing-instances VPLS protocols vpls neighbor 1.1.1.1 # The loopback of the remote LDP neighbor (PE1)
Verification
Let's just look at PE1 VPLS status:
jhead@PE> show vpls connections
Layer-2 VPN connections:
Legend for connection status (St)
EI -- encapsulation invalid NC -- interface encapsulation not CCC/TCC/VPLS
EM -- encapsulation mismatch WE -- interface and instance encaps not same
VC-Dn -- Virtual circuit down NP -- interface hardware not present
CM -- control-word mismatch -> -- only outbound connection is up
CN -- circuit not provisioned <- -- only inbound connection is up
OR -- out of range Up -- operational
OL -- no outgoing label Dn -- down
LD -- local site signaled down CF -- call admission control failure
RD -- remote site signaled down SC -- local and remote site ID collision
LN -- local site not designated LM -- local site ID not minimum designated
RN -- remote site not designated RM -- remote site ID not minimum designated
XX -- unknown connection status IL -- no incoming label
MM -- MTU mismatch MI -- Mesh-Group ID not available
BK -- Backup connection ST -- Standby connection
PF -- Profile parse failure PB -- Profile busy
RS -- remote site standby SN -- Static Neighbor
LB -- Local site not best-site RB -- Remote site not best-site
VM -- VLAN ID mismatch
Legend for interface status
Up -- operational
Dn -- down
Instance: VPLS
LDP-VPLS State
VPLS-id: 70
Mesh-group connections: __ves__
Neighbor Type St Time last up # Up trans
2.2.2.2(vpls-id 70) rmt Up Dec 3 21:07:21 2020 1
Remote PE: 2.2.2.2, Negotiated control-word: No
Incoming label: 262146, Outgoing label: 262146
Negotiated PW status TLV: No
Local interface: lsi.1048577, Status: Up, Encapsulation: ETHERNET
Description: Intf - vpls VPLS neighbor 2.2.2.2 vpls-id 70
Flow Label Transmit: No, Flow Label Receive: No
Finally, we can see that the two CEs can communicate.
jhead@CE1> ping 192.168.1.20
PING 192.168.1.20 (192.168.1.20): 56 data bytes
64 bytes from 192.168.1.20: icmp_seq=0 ttl=64 time=8.838 ms
64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=4.620 ms
64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=5.639 ms
64 bytes from 192.168.1.20: icmp_seq=3 ttl=64 time=3.969 ms
64 bytes from 192.168.1.20: icmp_seq=4 ttl=64 time=5.594 ms